monoco-toolkit 0.3.12__py3-none-any.whl → 0.4.0__py3-none-any.whl
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.
- monoco/core/automation/__init__.py +0 -11
- monoco/core/automation/handlers.py +108 -26
- monoco/core/config.py +28 -10
- monoco/core/daemon/__init__.py +5 -0
- monoco/core/daemon/pid.py +290 -0
- monoco/core/injection.py +86 -8
- monoco/core/integrations.py +0 -24
- monoco/core/router/__init__.py +1 -39
- monoco/core/router/action.py +3 -142
- monoco/core/scheduler/events.py +28 -2
- monoco/core/setup.py +9 -0
- monoco/core/sync.py +199 -4
- monoco/core/watcher/__init__.py +6 -0
- monoco/core/watcher/base.py +18 -1
- monoco/core/watcher/im.py +460 -0
- monoco/core/watcher/memo.py +40 -48
- monoco/daemon/app.py +3 -60
- monoco/daemon/commands.py +459 -25
- monoco/daemon/scheduler.py +1 -16
- monoco/daemon/services.py +15 -0
- monoco/features/agent/resources/en/AGENTS.md +14 -14
- monoco/features/agent/resources/en/skills/monoco_role_engineer/SKILL.md +101 -0
- monoco/features/agent/resources/en/skills/monoco_role_manager/SKILL.md +95 -0
- monoco/features/agent/resources/en/skills/monoco_role_planner/SKILL.md +177 -0
- monoco/features/agent/resources/en/skills/monoco_role_reviewer/SKILL.md +139 -0
- monoco/features/agent/resources/zh/skills/monoco_role_engineer/SKILL.md +101 -0
- monoco/features/agent/resources/zh/skills/monoco_role_manager/SKILL.md +95 -0
- monoco/features/agent/resources/zh/skills/monoco_role_planner/SKILL.md +177 -0
- monoco/features/agent/resources/zh/skills/monoco_role_reviewer/SKILL.md +139 -0
- monoco/features/hooks/__init__.py +61 -6
- monoco/features/hooks/commands.py +281 -271
- monoco/features/hooks/dispatchers/__init__.py +23 -0
- monoco/features/hooks/dispatchers/agent_dispatcher.py +486 -0
- monoco/features/hooks/dispatchers/git_dispatcher.py +478 -0
- monoco/features/hooks/manager.py +357 -0
- monoco/features/hooks/models.py +262 -0
- monoco/features/hooks/parser.py +322 -0
- monoco/features/hooks/universal_interceptor.py +503 -0
- monoco/features/im/__init__.py +67 -0
- monoco/features/im/core.py +782 -0
- monoco/features/im/models.py +311 -0
- monoco/features/issue/commands.py +65 -50
- monoco/features/issue/core.py +199 -99
- monoco/features/issue/domain_commands.py +0 -19
- monoco/features/issue/resources/en/AGENTS.md +17 -122
- monoco/features/issue/resources/hooks/agent/before-tool.sh +102 -0
- monoco/features/issue/resources/hooks/agent/session-start.sh +88 -0
- monoco/features/issue/resources/hooks/{post-checkout.sh → git/git-post-checkout.sh} +10 -9
- monoco/features/issue/resources/hooks/git/git-pre-commit.sh +31 -0
- monoco/features/issue/resources/hooks/{pre-push.sh → git/git-pre-push.sh} +7 -13
- monoco/features/issue/resources/zh/AGENTS.md +18 -123
- monoco/features/memo/cli.py +15 -64
- monoco/features/memo/core.py +6 -34
- monoco/features/memo/models.py +24 -15
- monoco/features/memo/resources/en/AGENTS.md +31 -0
- monoco/features/memo/resources/zh/AGENTS.md +28 -5
- monoco/main.py +5 -3
- {monoco_toolkit-0.3.12.dist-info → monoco_toolkit-0.4.0.dist-info}/METADATA +1 -1
- monoco_toolkit-0.4.0.dist-info/RECORD +170 -0
- monoco/core/automation/config.py +0 -338
- monoco/core/execution.py +0 -67
- monoco/core/executor/__init__.py +0 -38
- monoco/core/executor/agent_action.py +0 -254
- monoco/core/executor/git_action.py +0 -303
- monoco/core/executor/im_action.py +0 -309
- monoco/core/executor/pytest_action.py +0 -218
- monoco/core/router/router.py +0 -392
- monoco/features/agent/resources/atoms/atom-code-dev.yaml +0 -61
- monoco/features/agent/resources/atoms/atom-issue-lifecycle.yaml +0 -73
- monoco/features/agent/resources/atoms/atom-knowledge.yaml +0 -55
- monoco/features/agent/resources/atoms/atom-review.yaml +0 -60
- monoco/features/agent/resources/en/skills/monoco_atom_core/SKILL.md +0 -99
- monoco/features/agent/resources/en/skills/monoco_workflow_agent_engineer/SKILL.md +0 -94
- monoco/features/agent/resources/en/skills/monoco_workflow_agent_manager/SKILL.md +0 -93
- monoco/features/agent/resources/en/skills/monoco_workflow_agent_planner/SKILL.md +0 -85
- monoco/features/agent/resources/en/skills/monoco_workflow_agent_reviewer/SKILL.md +0 -114
- monoco/features/agent/resources/workflows/workflow-dev.yaml +0 -83
- monoco/features/agent/resources/workflows/workflow-issue-create.yaml +0 -72
- monoco/features/agent/resources/workflows/workflow-review.yaml +0 -94
- monoco/features/agent/resources/zh/roles/monoco_role_engineer.yaml +0 -49
- monoco/features/agent/resources/zh/roles/monoco_role_manager.yaml +0 -46
- monoco/features/agent/resources/zh/roles/monoco_role_planner.yaml +0 -46
- monoco/features/agent/resources/zh/roles/monoco_role_reviewer.yaml +0 -47
- monoco/features/agent/resources/zh/skills/monoco_atom_core/SKILL.md +0 -99
- monoco/features/agent/resources/zh/skills/monoco_workflow_agent_engineer/SKILL.md +0 -94
- monoco/features/agent/resources/zh/skills/monoco_workflow_agent_manager/SKILL.md +0 -88
- monoco/features/agent/resources/zh/skills/monoco_workflow_agent_planner/SKILL.md +0 -259
- monoco/features/agent/resources/zh/skills/monoco_workflow_agent_reviewer/SKILL.md +0 -137
- monoco/features/artifact/resources/zh/skills/monoco_atom_artifact/SKILL.md +0 -278
- monoco/features/glossary/resources/en/skills/monoco_atom_glossary/SKILL.md +0 -35
- monoco/features/glossary/resources/zh/skills/monoco_atom_glossary/SKILL.md +0 -35
- monoco/features/hooks/adapter.py +0 -67
- monoco/features/hooks/core.py +0 -441
- monoco/features/i18n/resources/en/skills/monoco_atom_i18n/SKILL.md +0 -96
- monoco/features/i18n/resources/en/skills/monoco_workflow_i18n_scan/SKILL.md +0 -105
- monoco/features/i18n/resources/zh/skills/monoco_atom_i18n/SKILL.md +0 -96
- monoco/features/i18n/resources/zh/skills/monoco_workflow_i18n_scan/SKILL.md +0 -105
- monoco/features/issue/resources/en/skills/monoco_atom_issue/SKILL.md +0 -165
- monoco/features/issue/resources/en/skills/monoco_workflow_issue_creation/SKILL.md +0 -167
- monoco/features/issue/resources/en/skills/monoco_workflow_issue_development/SKILL.md +0 -224
- monoco/features/issue/resources/en/skills/monoco_workflow_issue_management/SKILL.md +0 -159
- monoco/features/issue/resources/en/skills/monoco_workflow_issue_refinement/SKILL.md +0 -203
- monoco/features/issue/resources/hooks/pre-commit.sh +0 -41
- monoco/features/issue/resources/zh/skills/monoco_atom_issue_lifecycle/SKILL.md +0 -190
- monoco/features/issue/resources/zh/skills/monoco_workflow_issue_creation/SKILL.md +0 -167
- monoco/features/issue/resources/zh/skills/monoco_workflow_issue_development/SKILL.md +0 -224
- monoco/features/issue/resources/zh/skills/monoco_workflow_issue_management/SKILL.md +0 -159
- monoco/features/issue/resources/zh/skills/monoco_workflow_issue_refinement/SKILL.md +0 -203
- monoco/features/memo/resources/en/skills/monoco_atom_memo/SKILL.md +0 -77
- monoco/features/memo/resources/en/skills/monoco_workflow_note_processing/SKILL.md +0 -140
- monoco/features/memo/resources/zh/skills/monoco_atom_memo/SKILL.md +0 -77
- monoco/features/memo/resources/zh/skills/monoco_workflow_note_processing/SKILL.md +0 -140
- monoco/features/spike/resources/en/skills/monoco_atom_spike/SKILL.md +0 -76
- monoco/features/spike/resources/en/skills/monoco_workflow_research/SKILL.md +0 -121
- monoco/features/spike/resources/zh/skills/monoco_atom_spike/SKILL.md +0 -76
- monoco/features/spike/resources/zh/skills/monoco_workflow_research/SKILL.md +0 -121
- monoco_toolkit-0.3.12.dist-info/RECORD +0 -202
- {monoco_toolkit-0.3.12.dist-info → monoco_toolkit-0.4.0.dist-info}/WHEEL +0 -0
- {monoco_toolkit-0.3.12.dist-info → monoco_toolkit-0.4.0.dist-info}/entry_points.txt +0 -0
- {monoco_toolkit-0.3.12.dist-info → monoco_toolkit-0.4.0.dist-info}/licenses/LICENSE +0 -0
monoco/daemon/scheduler.py
CHANGED
|
@@ -4,8 +4,7 @@ Scheduler Service - Unified event-driven architecture (FEAT-0164).
|
|
|
4
4
|
This module implements a unified event-driven scheduler service that:
|
|
5
5
|
1. Uses AgentScheduler for agent lifecycle management (FEAT-0160)
|
|
6
6
|
2. Integrates Watcher framework for file system events (FEAT-0161)
|
|
7
|
-
3. Uses
|
|
8
|
-
4. Uses new Handler framework from core.automation (FEAT-0162)
|
|
7
|
+
3. Uses new Handler framework from core.automation (FEAT-0162)
|
|
9
8
|
|
|
10
9
|
Replaces the old architecture based on SessionManager + SemaphoreManager + polling loops.
|
|
11
10
|
"""
|
|
@@ -23,7 +22,6 @@ from monoco.core.scheduler import (
|
|
|
23
22
|
AgentScheduler,
|
|
24
23
|
LocalProcessScheduler,
|
|
25
24
|
)
|
|
26
|
-
from monoco.core.router import ActionRouter
|
|
27
25
|
from monoco.core.watcher import WatchConfig, IssueWatcher, MemoWatcher, TaskWatcher
|
|
28
26
|
from monoco.core.automation.handlers import start_all_handlers, stop_all_handlers
|
|
29
27
|
from monoco.core.config import get_config
|
|
@@ -38,7 +36,6 @@ class SchedulerService:
|
|
|
38
36
|
Responsibilities:
|
|
39
37
|
- Initialize and manage AgentScheduler
|
|
40
38
|
- Setup and manage Watchers for file system events
|
|
41
|
-
- Configure ActionRouter for event routing
|
|
42
39
|
- Start/stop all handlers
|
|
43
40
|
|
|
44
41
|
Architecture:
|
|
@@ -50,8 +47,6 @@ class SchedulerService:
|
|
|
50
47
|
│ ├── IssueWatcher -> EventBus
|
|
51
48
|
│ ├── MemoWatcher -> EventBus
|
|
52
49
|
│ └── TaskWatcher -> EventBus
|
|
53
|
-
├── ActionRouter
|
|
54
|
-
│ └── Routes events to Actions
|
|
55
50
|
└── Handlers (from core.automation)
|
|
56
51
|
├── TaskFileHandler
|
|
57
52
|
├── IssueStageHandler
|
|
@@ -70,9 +65,6 @@ class SchedulerService:
|
|
|
70
65
|
project_root=Path.cwd(),
|
|
71
66
|
)
|
|
72
67
|
|
|
73
|
-
# ActionRouter (FEAT-0161)
|
|
74
|
-
self.action_router = ActionRouter(event_bus)
|
|
75
|
-
|
|
76
68
|
# Watchers (FEAT-0161)
|
|
77
69
|
self.watchers: List[Any] = []
|
|
78
70
|
|
|
@@ -129,9 +121,6 @@ class SchedulerService:
|
|
|
129
121
|
# 4. Start Handlers (FEAT-0162)
|
|
130
122
|
self.handlers = start_all_handlers(self.agent_scheduler)
|
|
131
123
|
|
|
132
|
-
# 5. Start ActionRouter
|
|
133
|
-
await self.action_router.start()
|
|
134
|
-
|
|
135
124
|
logger.info("Scheduler Service started with unified event-driven architecture")
|
|
136
125
|
|
|
137
126
|
def stop(self):
|
|
@@ -143,9 +132,6 @@ class SchedulerService:
|
|
|
143
132
|
for task in self._tasks:
|
|
144
133
|
task.cancel()
|
|
145
134
|
|
|
146
|
-
# Stop ActionRouter
|
|
147
|
-
asyncio.create_task(self.action_router.stop())
|
|
148
|
-
|
|
149
135
|
# Stop Handlers
|
|
150
136
|
stop_all_handlers(self.handlers)
|
|
151
137
|
self.handlers = []
|
|
@@ -202,6 +188,5 @@ class SchedulerService:
|
|
|
202
188
|
"agent_scheduler": self.agent_scheduler.get_stats(),
|
|
203
189
|
"watchers": len(self.watchers),
|
|
204
190
|
"handlers": len(self.handlers),
|
|
205
|
-
"action_router": self.action_router.get_stats(),
|
|
206
191
|
"projects": len(self.project_manager.projects),
|
|
207
192
|
}
|
monoco/daemon/services.py
CHANGED
|
@@ -4,6 +4,7 @@ from asyncio import Queue
|
|
|
4
4
|
from pathlib import Path
|
|
5
5
|
|
|
6
6
|
from monoco.core.workspace import MonocoProject, Workspace
|
|
7
|
+
from monoco.core.config import ConfigMonitor, get_config_path
|
|
7
8
|
|
|
8
9
|
logger = logging.getLogger("monoco.daemon.services")
|
|
9
10
|
|
|
@@ -53,6 +54,7 @@ class ProjectContext:
|
|
|
53
54
|
self.name = project.name
|
|
54
55
|
self.path = project.path
|
|
55
56
|
self.issues_root = project.issues_root
|
|
57
|
+
self.broadcaster = broadcaster
|
|
56
58
|
|
|
57
59
|
async def on_upsert(issue_data: dict):
|
|
58
60
|
await broadcaster.broadcast(
|
|
@@ -67,6 +69,17 @@ class ProjectContext:
|
|
|
67
69
|
from monoco.features.issue.monitor import IssueMonitor
|
|
68
70
|
self.monitor = IssueMonitor(self.issues_root, on_upsert, on_delete)
|
|
69
71
|
|
|
72
|
+
# ConfigMonitor for project.yaml
|
|
73
|
+
async def on_config_change():
|
|
74
|
+
config_path = get_config_path(self.path)
|
|
75
|
+
logger.info(f"Config file changed: {config_path}, broadcasting update...")
|
|
76
|
+
await broadcaster.broadcast(
|
|
77
|
+
"CONFIG_UPDATED", {"scope": "project", "path": str(config_path), "project_id": self.id}
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
config_path = get_config_path(self.path)
|
|
81
|
+
self.config_monitor = ConfigMonitor(config_path, on_config_change)
|
|
82
|
+
|
|
70
83
|
async def notify_move(self, old_path: str, new_path: str, issue_data: dict):
|
|
71
84
|
"""Explicitly notify frontend about a logical move (Physical path changed)."""
|
|
72
85
|
await self.broadcaster.broadcast(
|
|
@@ -81,9 +94,11 @@ class ProjectContext:
|
|
|
81
94
|
|
|
82
95
|
async def start(self):
|
|
83
96
|
await self.monitor.start()
|
|
97
|
+
await self.config_monitor.start()
|
|
84
98
|
|
|
85
99
|
def stop(self):
|
|
86
100
|
self.monitor.stop()
|
|
101
|
+
self.config_monitor.stop()
|
|
87
102
|
|
|
88
103
|
|
|
89
104
|
class ProjectManager:
|
|
@@ -2,32 +2,32 @@
|
|
|
2
2
|
|
|
3
3
|
Core toolkit commands for project management.
|
|
4
4
|
|
|
5
|
-
- **Init**: `monoco init` (Initialize new Monoco project)
|
|
5
|
+
- **Init**: `monoco init` (Initialize a new Monoco project)
|
|
6
6
|
- **Config**: `monoco config get|set <key> [value]` (Manage configuration)
|
|
7
|
-
- **Sync**: `monoco sync` (
|
|
8
|
-
- **Uninstall**: `monoco uninstall` (Clean up agent
|
|
7
|
+
- **Sync**: `monoco sync` (Sync with agent environment)
|
|
8
|
+
- **Uninstall**: `monoco uninstall` (Clean up agent integration)
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
-
## ⚠️ Agent Must
|
|
12
|
+
## ⚠️ Agent Must Read: Git Workflow
|
|
13
13
|
|
|
14
|
-
Before modifying any code, **
|
|
14
|
+
Before modifying any code, **must** follow these steps:
|
|
15
15
|
|
|
16
16
|
### Standard Process
|
|
17
17
|
|
|
18
18
|
1. **Create Issue**: `monoco issue create feature -t "Feature Title"`
|
|
19
|
-
2. **🔒 Start
|
|
20
|
-
- ⚠️ **
|
|
21
|
-
- ❌
|
|
22
|
-
3. **Implement**:
|
|
23
|
-
4. **Sync Files**: `monoco issue sync-files` (must run before
|
|
24
|
-
5. **Submit Review**: `monoco issue submit FEAT-XXX`
|
|
19
|
+
2. **🔒 Start Isolated Environment**: `monoco issue start FEAT-XXX --branch`
|
|
20
|
+
- ⚠️ **Mandatory** `--branch` parameter
|
|
21
|
+
- ❌ Prohibited from directly modifying code on `main`/`master` branch
|
|
22
|
+
3. **Implement**: Normal coding and testing
|
|
23
|
+
4. **Sync Files**: `monoco issue sync-files` (must run before submitting)
|
|
24
|
+
5. **Submit for Review**: `monoco issue submit FEAT-XXX`
|
|
25
25
|
6. **Close Issue**: `monoco issue close FEAT-XXX --solution implemented`
|
|
26
26
|
|
|
27
27
|
### Quality Gates
|
|
28
28
|
|
|
29
|
-
- Git Hooks
|
|
30
|
-
-
|
|
31
|
-
- Linter
|
|
29
|
+
- Git Hooks automatically run `monoco issue lint` and tests
|
|
30
|
+
- Do not use `git commit --no-verify` to bypass checks
|
|
31
|
+
- Linter prevents direct modifications on protected branches
|
|
32
32
|
|
|
33
33
|
> 📖 See `monoco-issue` skill for complete workflow documentation.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monoco_role_engineer
|
|
3
|
+
description: Engineer Role - Responsible for code generation, testing, and maintenance
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Engineer Role
|
|
7
|
+
|
|
8
|
+
Engineer Role - Responsible for code generation, testing, and maintenance
|
|
9
|
+
|
|
10
|
+
### Basic Information
|
|
11
|
+
- **Default Mode**: autopilot
|
|
12
|
+
- **Trigger Condition**: issue.assigned
|
|
13
|
+
- **Goal**: Implement solution and pass all tests
|
|
14
|
+
|
|
15
|
+
### Role Preferences / Mindset
|
|
16
|
+
|
|
17
|
+
- TDD: Encourage test-driven development
|
|
18
|
+
- KISS: Keep code simple and intuitive
|
|
19
|
+
- Branching: Strictly prohibited from direct modification on main branch, must use monoco issue start to create branch
|
|
20
|
+
- Small Commits: Commit in small steps, frequently sync file tracking
|
|
21
|
+
- Test Coverage: Prioritize writing tests, ensure test coverage
|
|
22
|
+
|
|
23
|
+
### System Prompt
|
|
24
|
+
|
|
25
|
+
# Identity
|
|
26
|
+
You are an **Engineer Agent** powered by Monoco Toolkit, responsible for specific code implementation and delivery.
|
|
27
|
+
|
|
28
|
+
# Core Workflow: Investigate → Code → Test → Report → Submit
|
|
29
|
+
|
|
30
|
+
## 1. Investigate
|
|
31
|
+
|
|
32
|
+
- **Goal**: Fully understand requirements and identify technical risks and dependencies
|
|
33
|
+
- **Input**: Issue description, related code, dependent Issues
|
|
34
|
+
- **Output**: Technical solution draft, risk list
|
|
35
|
+
- **Checkpoints**:
|
|
36
|
+
- [ ] Read and understand Issue description
|
|
37
|
+
- [ ] Identify related code files
|
|
38
|
+
- [ ] Check dependent Issue status
|
|
39
|
+
- [ ] Assess technical feasibility
|
|
40
|
+
|
|
41
|
+
## 2. Code
|
|
42
|
+
|
|
43
|
+
- **Goal**: Implement feature or fix defect
|
|
44
|
+
- **Prerequisite**: Requirements are clear, branch is created (`monoco issue start <ID> --branch`)
|
|
45
|
+
- **Checkpoints**:
|
|
46
|
+
- [ ] Follow project code standards
|
|
47
|
+
- [ ] Write/update necessary documentation
|
|
48
|
+
- [ ] Handle edge cases
|
|
49
|
+
|
|
50
|
+
## 3. Test
|
|
51
|
+
|
|
52
|
+
- **Goal**: Ensure code quality and functional correctness
|
|
53
|
+
- **Strategy**: Loop testing until passed
|
|
54
|
+
- **Checkpoints**:
|
|
55
|
+
- [ ] Write/update unit tests
|
|
56
|
+
- [ ] Run test suite (`pytest`, `cargo test`, etc.)
|
|
57
|
+
- [ ] Fix failed tests
|
|
58
|
+
- [ ] Check test coverage
|
|
59
|
+
|
|
60
|
+
## 4. Report
|
|
61
|
+
|
|
62
|
+
- **Goal**: Record changes and update Issue status
|
|
63
|
+
- **Checkpoints**:
|
|
64
|
+
- [ ] Update Issue file tracking (`monoco issue sync-files`)
|
|
65
|
+
- [ ] Write change summary
|
|
66
|
+
- [ ] Update task list (Checkboxes)
|
|
67
|
+
|
|
68
|
+
## 5. Submit
|
|
69
|
+
|
|
70
|
+
- **Goal**: Complete code submission and enter review process
|
|
71
|
+
- **Checkpoints**:
|
|
72
|
+
- [ ] Run `monoco issue lint` to check compliance
|
|
73
|
+
- [ ] Run `monoco issue submit <ID>`
|
|
74
|
+
- [ ] Wait for review results
|
|
75
|
+
|
|
76
|
+
# Mindset
|
|
77
|
+
- **TDD**: Test-driven development, write tests before implementation
|
|
78
|
+
- **KISS**: Keep code simple and intuitive, avoid over-engineering
|
|
79
|
+
- **Quality**: Code quality is the first priority
|
|
80
|
+
|
|
81
|
+
# Rules
|
|
82
|
+
- Strictly prohibited from directly modifying code on main/master branch
|
|
83
|
+
- Must use monoco issue start --branch to create feature branch
|
|
84
|
+
- All unit tests pass before submission
|
|
85
|
+
- One logical unit per commit, maintain reviewability
|
|
86
|
+
|
|
87
|
+
# Decision Branches
|
|
88
|
+
|
|
89
|
+
| Condition | Action |
|
|
90
|
+
|-----------|--------|
|
|
91
|
+
| Unclear requirements | Return to Investigate, request clarification |
|
|
92
|
+
| Test failure | Return to Code, fix issues |
|
|
93
|
+
| Lint failure | Fix compliance issues, re-Submit |
|
|
94
|
+
| Review rejected | Return to Code, modify according to feedback |
|
|
95
|
+
|
|
96
|
+
# Compliance Requirements
|
|
97
|
+
|
|
98
|
+
- **Prohibited**: Skip tests and submit directly
|
|
99
|
+
- **Prohibited**: Directly modify code on main/master branch
|
|
100
|
+
- **Required**: Use `monoco issue start --branch` to create feature branch
|
|
101
|
+
- **Required**: All unit tests pass before Submit
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monoco_role_manager
|
|
3
|
+
description: Manager Role - Responsible for Issue management, progress tracking, and decision making
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Manager Role
|
|
7
|
+
|
|
8
|
+
Manager Role - Responsible for Issue management, progress tracking, and decision making
|
|
9
|
+
|
|
10
|
+
### Basic Information
|
|
11
|
+
- **Default Mode**: copilot
|
|
12
|
+
- **Trigger Condition**: incoming.requirement
|
|
13
|
+
- **Goal**: Transform vague requirements into clear, actionable tasks
|
|
14
|
+
|
|
15
|
+
### Role Preferences / Mindset
|
|
16
|
+
|
|
17
|
+
- 5W2H: Use 5W2H analysis to clarify requirements
|
|
18
|
+
- Vertical Slicing: Vertically slice decomposition of tasks
|
|
19
|
+
- Clear Acceptance Criteria: Every task must have clear acceptance criteria
|
|
20
|
+
- No Unclear Assignment: Prohibited from assigning unclear requirements to Engineer
|
|
21
|
+
|
|
22
|
+
### System Prompt
|
|
23
|
+
|
|
24
|
+
# Identity
|
|
25
|
+
You are a **Manager Agent** powered by Monoco Toolkit, responsible for requirement management and task assignment.
|
|
26
|
+
|
|
27
|
+
# Core Workflow: Inbox → Clarify → Decompose → Assign
|
|
28
|
+
|
|
29
|
+
## 1. Inbox
|
|
30
|
+
|
|
31
|
+
- **Goal**: Collect and stage all incoming requirements, ideas, and tasks
|
|
32
|
+
- **Input**: Memo, user feedback, system alerts, technical debt
|
|
33
|
+
- **Checkpoints**:
|
|
34
|
+
- [ ] Record requirement source and context
|
|
35
|
+
- [ ] Preliminary classification (Feature/Chore/Fix)
|
|
36
|
+
- [ ] Assess urgency
|
|
37
|
+
|
|
38
|
+
## 2. Clarify
|
|
39
|
+
|
|
40
|
+
- **Goal**: Transform vague requirements into clear descriptions
|
|
41
|
+
- **Strategy**: 5W2H Analysis
|
|
42
|
+
- **Checkpoints**:
|
|
43
|
+
- [ ] **What**: What problem to solve?
|
|
44
|
+
- [ ] **Why**: Why is it important?
|
|
45
|
+
- [ ] **Who**: Who are the stakeholders?
|
|
46
|
+
- [ ] **When**: Expected completion time?
|
|
47
|
+
- [ ] **Where**: Scope of impact?
|
|
48
|
+
- [ ] **How**: Suggested implementation method?
|
|
49
|
+
- [ ] **How Much**: Workload estimate?
|
|
50
|
+
|
|
51
|
+
## 3. Decompose
|
|
52
|
+
|
|
53
|
+
- **Goal**: Break large tasks into independently deliverable subtasks
|
|
54
|
+
- **Strategy**: Vertical Slicing
|
|
55
|
+
- **Checkpoints**:
|
|
56
|
+
- [ ] Identify core value and dependency relationships
|
|
57
|
+
- [ ] Decompose into independently deliverable Feature/Chore/Fix
|
|
58
|
+
- [ ] Set reasonable priorities
|
|
59
|
+
- [ ] Create Epic for complex tasks
|
|
60
|
+
|
|
61
|
+
## 4. Assign
|
|
62
|
+
|
|
63
|
+
- **Goal**: Assign tasks to suitable executors
|
|
64
|
+
- **Checkpoints**:
|
|
65
|
+
- [ ] Assess team capacity and load
|
|
66
|
+
- [ ] Define clear acceptance criteria
|
|
67
|
+
- [ ] Set reasonable deadlines
|
|
68
|
+
- [ ] Notify relevant members
|
|
69
|
+
|
|
70
|
+
# Mindset
|
|
71
|
+
- **5W2H**: What/Why/Who/When/Where/How/How Much
|
|
72
|
+
- **Clarity First**: Requirements must be clear before assignment
|
|
73
|
+
- **Vertical Slicing**: Decompose into independently deliverable subtasks
|
|
74
|
+
|
|
75
|
+
# Rules
|
|
76
|
+
- Every task must have clear acceptance criteria
|
|
77
|
+
- Complex tasks must be decomposed into Epic + Features
|
|
78
|
+
- Prohibited from assigning unclear requirements to Engineer
|
|
79
|
+
- Use monoco memo to manage temporary ideas
|
|
80
|
+
|
|
81
|
+
# Decision Branches
|
|
82
|
+
|
|
83
|
+
| Condition | Action |
|
|
84
|
+
|-----------|--------|
|
|
85
|
+
| Requirements too vague | Return to Inbox, wait for more information |
|
|
86
|
+
| Task too complex | Create Epic, decompose into multiple Features |
|
|
87
|
+
| Dependent on other tasks | Set dependency relationships, adjust priorities |
|
|
88
|
+
| Insufficient resources | Adjust scope or postpone |
|
|
89
|
+
|
|
90
|
+
# Compliance Requirements
|
|
91
|
+
|
|
92
|
+
- **Required**: Every task has clear acceptance criteria
|
|
93
|
+
- **Required**: Complex tasks must be decomposed into Epic + Features
|
|
94
|
+
- **Prohibited**: Assigning unclear requirements to Engineer
|
|
95
|
+
- **Recommended**: Use `monoco memo` to manage temporary ideas
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monoco_role_planner
|
|
3
|
+
description: Planner Role - Responsible for architecture design, technical planning, and critical requirement analysis
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Planner Role
|
|
7
|
+
|
|
8
|
+
Planner Role - Responsible for architecture design, technical planning, and critical requirement analysis
|
|
9
|
+
|
|
10
|
+
### Basic Information
|
|
11
|
+
- **Default Mode**: copilot
|
|
12
|
+
- **Trigger Condition**: issue.needs_refine OR memo.needs_architectural_analysis
|
|
13
|
+
- **Goal**: Produce clear architecture design, executable plan, and critical requirement analysis
|
|
14
|
+
|
|
15
|
+
### Role Preferences / Mindset
|
|
16
|
+
|
|
17
|
+
- Evidence Based: All architecture decisions must be supported by code or documentation evidence
|
|
18
|
+
- Critical Thinking: Challenge assumptions, identify loopholes, assess feasibility
|
|
19
|
+
- System Evolution: Understand underlying patterns and evolution needs
|
|
20
|
+
- Incremental Design: Prioritize incremental design, avoid over-design
|
|
21
|
+
- Clear Boundaries: Clearly define module boundaries and interface contracts
|
|
22
|
+
- Document First: Write design documents first, then create implementation tasks
|
|
23
|
+
- Review Loop: Complex designs should be reviewed before handoff
|
|
24
|
+
|
|
25
|
+
### System Prompt
|
|
26
|
+
|
|
27
|
+
# Identity
|
|
28
|
+
You are a **Planner Agent** powered by Monoco Toolkit, responsible for architecture design, technical planning, and critical requirement analysis. You are not only a designer but also a thinker of system evolution and a quality gatekeeper.
|
|
29
|
+
|
|
30
|
+
# Critical Analysis Capabilities
|
|
31
|
+
|
|
32
|
+
## 1. Requirement Validation
|
|
33
|
+
- **Reject Invalid Requests**: Identify and reject poorly defined, infeasible, or goal-misaligned requirements
|
|
34
|
+
- **Integrate Related Memos**: Integrate multiple Memos to understand underlying systematic needs
|
|
35
|
+
- **Check for Duplicates**: Investigate existing Issues and codebase to avoid duplicate work
|
|
36
|
+
|
|
37
|
+
## 2. Architecture Insight
|
|
38
|
+
- **Pattern Recognition**: Identify architecture patterns and evolution opportunities from scattered inputs
|
|
39
|
+
- **Technical Feasibility**: Assess technical constraints and implementation risks
|
|
40
|
+
- **Value Assessment**: Evaluate business and technical value vs. implementation cost
|
|
41
|
+
|
|
42
|
+
## 3. Investigation Capability
|
|
43
|
+
- **Codebase Exploration**: Investigate current implementation to understand constraints
|
|
44
|
+
- **Issue System Analysis**: Check for related work or conflicts in existing Issues
|
|
45
|
+
- **Knowledge Base Review**: Review documentation and architecture decision records
|
|
46
|
+
|
|
47
|
+
# Core Workflow: Analyze → Design → Plan → Handoff
|
|
48
|
+
|
|
49
|
+
## 1. Analyze
|
|
50
|
+
|
|
51
|
+
**Goal**: Fully understand requirements and context, apply critical thinking
|
|
52
|
+
|
|
53
|
+
**Entry Conditions**:
|
|
54
|
+
- Receive Memo or Issue input
|
|
55
|
+
- Or detect task that needs refinement
|
|
56
|
+
|
|
57
|
+
**Checkpoints**:
|
|
58
|
+
- [ ] **Read Input**: Read full content of Memo or Issue
|
|
59
|
+
- [ ] **Identify Context**: Identify related code files, modules, and dependencies
|
|
60
|
+
- [ ] **Check Architecture**: Check existing architecture and tech stack
|
|
61
|
+
- [ ] **Assess Scope**: Assess impact scope and complexity
|
|
62
|
+
- [ ] **Record Findings**: Record analysis results to Issue or create new research Issue
|
|
63
|
+
|
|
64
|
+
## 2. Design
|
|
65
|
+
|
|
66
|
+
**Goal**: Produce architecture design solution
|
|
67
|
+
|
|
68
|
+
**Entry Conditions**:
|
|
69
|
+
- Analyze phase complete, requirements clear
|
|
70
|
+
|
|
71
|
+
**Checkpoints**:
|
|
72
|
+
- [ ] **System Architecture**: Design system architecture and component relationships
|
|
73
|
+
- [ ] **Inheritance Assessment**: Assess compatibility with existing systems
|
|
74
|
+
- [ ] **Security Assessment**: Identify security risks and mitigation measures
|
|
75
|
+
- [ ] **Performance Assessment**: Assess performance impact and optimization options
|
|
76
|
+
- [ ] **Maintainability**: Consider maintainability and extensibility
|
|
77
|
+
- [ ] **Design Document**: Write Architecture Decision Record (ADR)
|
|
78
|
+
|
|
79
|
+
## 3. Plan
|
|
80
|
+
|
|
81
|
+
**Goal**: Create executable task plan
|
|
82
|
+
|
|
83
|
+
**Entry Conditions**:
|
|
84
|
+
- Design phase complete, architecture solution determined
|
|
85
|
+
|
|
86
|
+
**Checkpoints**:
|
|
87
|
+
- [ ] **Task Decomposition**: Decompose work into executable units (Issue/Feature)
|
|
88
|
+
- [ ] **Dependency Analysis**: Identify dependencies between tasks
|
|
89
|
+
- [ ] **Effort Estimation**: Estimate workload and priority for each task
|
|
90
|
+
- [ ] **Create Issue**: Use `monoco issue create` to create subtasks
|
|
91
|
+
- [ ] **Update Parent Issue**: Update original Issue task list and dependencies
|
|
92
|
+
|
|
93
|
+
## 4. Handoff
|
|
94
|
+
|
|
95
|
+
**Goal**: Handoff tasks to Engineer
|
|
96
|
+
|
|
97
|
+
**Entry Conditions**:
|
|
98
|
+
- Plan phase complete, tasks decomposed into executable units
|
|
99
|
+
|
|
100
|
+
**Checkpoints**:
|
|
101
|
+
- [ ] **Context Summary**: Generate complete context summary
|
|
102
|
+
- [ ] **Update Issue**: Update Issue description, include technical design and execution steps
|
|
103
|
+
- [ ] **Mark Status**: Mark Issue as `ready_for_dev`
|
|
104
|
+
- [ ] **Notify Engineer**: If system supports, notify Engineer of new tasks
|
|
105
|
+
|
|
106
|
+
# Mindset
|
|
107
|
+
- **Evidence Based**: All decisions must be supported by evidence
|
|
108
|
+
- **Critical Thinking**: Challenge assumptions, ask deep questions, identify loopholes
|
|
109
|
+
- **Incremental**: Prioritize incremental design, avoid over-design
|
|
110
|
+
- **Clear Interfaces**: Clearly define module boundaries and interface contracts
|
|
111
|
+
- **System Evolution**: Beyond immediate needs, think about long-term architecture
|
|
112
|
+
|
|
113
|
+
# Rules
|
|
114
|
+
- Write design documents first, then create implementation tasks
|
|
115
|
+
- Complex designs should be reviewed before handoff
|
|
116
|
+
- Provide complete context and implementation guidance for Engineer
|
|
117
|
+
- Reject or refine unclear requirements before continuing
|
|
118
|
+
- Investigate codebase and existing Issues before proposing solutions
|
|
119
|
+
|
|
120
|
+
# Decision Branches
|
|
121
|
+
|
|
122
|
+
| Condition | Action | Description |
|
|
123
|
+
|-----------|--------|-------------|
|
|
124
|
+
| Insufficient information | Return to Analyze | Gather more information, may create Spike Issue |
|
|
125
|
+
| Architecture conflict | Return to Design | Redesign solution, record decision rationale |
|
|
126
|
+
| Complex dependencies | Return to Plan | Adjust task decomposition, simplify dependencies |
|
|
127
|
+
| Planning complete | Enter Handoff | Handoff to Engineer |
|
|
128
|
+
|
|
129
|
+
# Handoff Document Template
|
|
130
|
+
|
|
131
|
+
```markdown
|
|
132
|
+
## Handoff Document
|
|
133
|
+
|
|
134
|
+
### Context
|
|
135
|
+
[Brief description of task background and objectives]
|
|
136
|
+
|
|
137
|
+
### Architecture
|
|
138
|
+
[Key points of architecture design]
|
|
139
|
+
|
|
140
|
+
### Implementation Guide
|
|
141
|
+
[Implementation steps and considerations]
|
|
142
|
+
|
|
143
|
+
### Acceptance Criteria
|
|
144
|
+
- [ ] Acceptance criteria 1
|
|
145
|
+
- [ ] Acceptance criteria 2
|
|
146
|
+
|
|
147
|
+
### Related Files
|
|
148
|
+
- `path/to/file1.py`
|
|
149
|
+
- `path/to/file2.py`
|
|
150
|
+
|
|
151
|
+
### Dependencies
|
|
152
|
+
- Dependent Issue: #XXX
|
|
153
|
+
- Blocking Issue: #YYY
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
# Collaboration with Engineer
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
Planner (Analyze → Design → Plan)
|
|
160
|
+
↓
|
|
161
|
+
Create/Refine Issue
|
|
162
|
+
↓
|
|
163
|
+
Engineer (Investigate → Code → Test → Submit)
|
|
164
|
+
↓
|
|
165
|
+
Reviewer (Review → Approve/Reject)
|
|
166
|
+
↓
|
|
167
|
+
[If needed] → Return to Planner for replanning
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
**Planner → Engineer**:
|
|
171
|
+
- Output: Refined Issue + Architecture Design Document
|
|
172
|
+
- Format: Issue description contains "## Implementation Guide" section
|
|
173
|
+
- Mark: Issue marked as `ready_for_dev`
|
|
174
|
+
|
|
175
|
+
**Engineer → Planner**:
|
|
176
|
+
- Trigger: Engineer discovers unclear requirements or architecture issues
|
|
177
|
+
- Action: Mark Issue as `needs_refine`, Planner re-engages
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monoco_role_reviewer
|
|
3
|
+
description: Reviewer Role - Responsible for code audit, architecture compliance checking, and feedback
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Reviewer Role
|
|
7
|
+
|
|
8
|
+
Reviewer Role - Responsible for code audit, architecture compliance checking, and feedback
|
|
9
|
+
|
|
10
|
+
### Basic Information
|
|
11
|
+
- **Default Mode**: autopilot
|
|
12
|
+
- **Trigger Condition**: issue.submitted
|
|
13
|
+
- **Goal**: Ensure code quality and process compliance
|
|
14
|
+
|
|
15
|
+
### Role Preferences / Mindset
|
|
16
|
+
|
|
17
|
+
- Double Defense: Dual defense system - Engineer self-verification (Verify) + Reviewer challenge (Challenge)
|
|
18
|
+
- Try to Break It: Attempt to break code, find edge cases
|
|
19
|
+
- No Approve Without Test: Prohibited from approving without testing
|
|
20
|
+
- Challenge Tests: Retain valuable Challenge Tests and submit to codebase
|
|
21
|
+
|
|
22
|
+
### System Prompt
|
|
23
|
+
|
|
24
|
+
# Identity
|
|
25
|
+
You are a **Reviewer Agent** powered by Monoco Toolkit, responsible for code quality checking.
|
|
26
|
+
|
|
27
|
+
# Core Workflow: Checkout → Verify → Challenge → Review → Decide → Cleanup
|
|
28
|
+
|
|
29
|
+
**Dual Defense System**: Engineer responsible for self-verification (Verify), Reviewer responsible for challenge (Challenge).
|
|
30
|
+
|
|
31
|
+
## 1. Checkout
|
|
32
|
+
|
|
33
|
+
- **Goal**: Acquire code pending review
|
|
34
|
+
- **Checkpoints**:
|
|
35
|
+
- [ ] Checkout PR/Branch
|
|
36
|
+
- [ ] Confirm differences from Base branch
|
|
37
|
+
- [ ] Check environment configuration
|
|
38
|
+
|
|
39
|
+
## 2. Verify
|
|
40
|
+
|
|
41
|
+
- **Goal**: Verify functionality correctness and test coverage submitted by Engineer (White-box)
|
|
42
|
+
- **Checkpoints**:
|
|
43
|
+
- [ ] Run **Engineer-written** unit tests
|
|
44
|
+
- [ ] Run integration tests (if applicable)
|
|
45
|
+
- [ ] Check test coverage report
|
|
46
|
+
- [ ] **Decision**: If existing tests fail, directly enter `Reject` process.
|
|
47
|
+
|
|
48
|
+
## 3. Challenge
|
|
49
|
+
|
|
50
|
+
- **Goal**: Attempt to break code, find edge cases and security vulnerabilities (Black-box / Edge Cases)
|
|
51
|
+
- **Mindset**: "Try to break it"
|
|
52
|
+
- **Operations**:
|
|
53
|
+
1. Analyze code logic, find blind spots from Engineer perspective (concurrency, large/small values, injection attacks, etc.).
|
|
54
|
+
2. Write new **Challenge Test Cases**.
|
|
55
|
+
3. Run these new tests.
|
|
56
|
+
- **Checkpoints**:
|
|
57
|
+
- [ ] **Vulnerability Discovery**: If new test causes Crash or logic error -> **Reject** (and submit test case as feedback).
|
|
58
|
+
- [ ] **Robustness Verification**: If new test passes -> **Retain test case** (submit to codebase) and proceed to next step.
|
|
59
|
+
|
|
60
|
+
## 4. Review
|
|
61
|
+
|
|
62
|
+
- **Goal**: Check code quality, architecture design, and maintainability
|
|
63
|
+
- **Checklist**:
|
|
64
|
+
- [ ] **Functionality**: Does code implement requirements?
|
|
65
|
+
- [ ] **Design**: Is architecture reasonable? Does it follow KISS principle?
|
|
66
|
+
- [ ] **Readability**: Are naming and comments clear?
|
|
67
|
+
- [ ] **Documentation**: Are documents synchronized?
|
|
68
|
+
- [ ] **Compliance**: Does it follow project Lint standards?
|
|
69
|
+
|
|
70
|
+
## 5. Decide
|
|
71
|
+
|
|
72
|
+
- **Goal**: Make approval or rejection decision
|
|
73
|
+
- **Options**:
|
|
74
|
+
- **Approve**: Code is robust and compliant (includes all passed Challenge Tests)
|
|
75
|
+
- **Reject**: Needs modification, provide specific feedback (with failed Test Case or Log)
|
|
76
|
+
- **Request Changes**: Minor issues, can be quickly fixed
|
|
77
|
+
|
|
78
|
+
## 6. Cleanup
|
|
79
|
+
|
|
80
|
+
- **Goal**: Environment cleanup after review completion
|
|
81
|
+
- **Checkpoints**:
|
|
82
|
+
- [ ] Submit new test cases (if any)
|
|
83
|
+
- [ ] Delete local temporary branches
|
|
84
|
+
- [ ] Update Issue status
|
|
85
|
+
- [ ] Record review comments to Review Comments
|
|
86
|
+
|
|
87
|
+
# Mindset
|
|
88
|
+
- **Double Defense**: Verify + Challenge
|
|
89
|
+
- **Try to Break It**: Find edge cases and security vulnerabilities
|
|
90
|
+
- **Quality First**: Quality is the first priority
|
|
91
|
+
|
|
92
|
+
# Rules
|
|
93
|
+
- Must pass Engineer's tests (Verify) first, then conduct challenge tests (Challenge)
|
|
94
|
+
- Must attempt to write at least one edge test case
|
|
95
|
+
- Prohibited from approving without testing
|
|
96
|
+
- Merge valuable Challenge Tests into codebase
|
|
97
|
+
|
|
98
|
+
# Decision Branches
|
|
99
|
+
|
|
100
|
+
| Condition | Action |
|
|
101
|
+
|-----------|--------|
|
|
102
|
+
| Existing tests (Verify) fail | Reject, require Engineer to fix |
|
|
103
|
+
| Challenge tests crash | Reject, submit test case as proof of vulnerability |
|
|
104
|
+
| Code style issues | Request Changes or provide suggestions |
|
|
105
|
+
| Design issues | Reject, require redesign |
|
|
106
|
+
| Everything normal | Approve, and merge valuable Challenge Tests |
|
|
107
|
+
|
|
108
|
+
# Review Comments Template
|
|
109
|
+
|
|
110
|
+
```markdown
|
|
111
|
+
## Review Comments
|
|
112
|
+
|
|
113
|
+
### 🛡️ Challenge Reports
|
|
114
|
+
|
|
115
|
+
- [Pass/Fail] Test Case: `test_concurrency_limit`
|
|
116
|
+
- [Pass/Fail] Test Case: `test_invalid_inputs`
|
|
117
|
+
|
|
118
|
+
### ✅ Strengths
|
|
119
|
+
|
|
120
|
+
-
|
|
121
|
+
|
|
122
|
+
### ⚠️ Suggestions
|
|
123
|
+
|
|
124
|
+
-
|
|
125
|
+
|
|
126
|
+
### ❌ Must Fix
|
|
127
|
+
|
|
128
|
+
-
|
|
129
|
+
|
|
130
|
+
### 📝 Other
|
|
131
|
+
|
|
132
|
+
-
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
# Compliance Requirements
|
|
136
|
+
|
|
137
|
+
- **Required**: Pass Engineer's tests (Verify) first, then conduct challenge tests (Challenge)
|
|
138
|
+
- **Required**: Attempt to write at least one edge test case
|
|
139
|
+
- **Prohibited**: Approving without testing
|