burhan-mop 0.1.1 → 0.1.2
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/.MOP/PROTOCOL.md +4 -1
- package/.MOP/scripts/burhan-mop.mjs +180 -47
- package/README.bm.md +152 -0
- package/README.md +65 -1057
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
8
|
<a href="https://www.npmjs.com/package/burhan-mop">
|
|
9
|
-
<img src="https://img.shields.io/npm/v/burhan-mop?style=for-the-badge&label=
|
|
9
|
+
<img src="https://img.shields.io/npm/v/burhan-mop?style=for-the-badge&label=NPM" alt="npm version">
|
|
10
10
|
</a>
|
|
11
11
|
<a href="https://github.com/BURHANDEV-ENTERPRISE/BURHAN-MOP">
|
|
12
12
|
<img src="https://img.shields.io/badge/GitHub-BURHAN--MOP-181717?style=for-the-badge&logo=github" alt="GitHub repository">
|
|
13
13
|
</a>
|
|
14
|
-
<img src="https://img.shields.io/badge/Node-%3E%3D20-
|
|
15
|
-
<img src="https://img.shields.io/badge/License-UNLICENSED-
|
|
14
|
+
<img src="https://img.shields.io/badge/Node-%3E%3D20-1FAE4B?style=for-the-badge&logo=node.js&logoColor=white" alt="Node 20+">
|
|
15
|
+
<img src="https://img.shields.io/badge/License-UNLICENSED-9CA3AF?style=for-the-badge" alt="License">
|
|
16
16
|
</p>
|
|
17
17
|
|
|
18
18
|
<p align="center">
|
|
@@ -23,87 +23,30 @@
|
|
|
23
23
|
<img src="https://img.shields.io/badge/MOP_Workflow-BMAD_inspired-FFB000?style=flat-square" alt="MOP workflow">
|
|
24
24
|
</p>
|
|
25
25
|
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
| Install into any project root with `npx burhan-mop install`. | Pasang ke root mana-mana projek dengan `npx burhan-mop install`. |
|
|
32
|
-
| Built for multi-provider use, not Claude-only. | Dibina untuk banyak provider, bukan Claude sahaja. |
|
|
33
|
-
|
|
34
|
-
</div>
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
## Table of Contents
|
|
39
|
-
|
|
40
|
-
- [English](#english)
|
|
41
|
-
- [What is BURHAN-MOP?](#what-is-burhan-mop)
|
|
42
|
-
- [Quick Start](#quick-start)
|
|
43
|
-
- [Setup Wizard](#setup-wizard)
|
|
44
|
-
- [Daily Usage](#daily-usage)
|
|
45
|
-
- [Agents and Party Mode](#agents-and-party-mode)
|
|
46
|
-
- [MOP Workflow](#mop-workflow)
|
|
47
|
-
- [Artifacts](#artifacts)
|
|
48
|
-
- [Autosycn](#autosycn)
|
|
49
|
-
- [Auto Deploy](#auto-deploy)
|
|
50
|
-
- [CLI Reference](#cli-reference)
|
|
51
|
-
- [Provider Support](#provider-support)
|
|
52
|
-
- [Publishing to npm](#publishing-to-npm)
|
|
53
|
-
- [Troubleshooting](#troubleshooting)
|
|
54
|
-
- [Bahasa Melayu](#bahasa-melayu)
|
|
55
|
-
- [Apa itu BURHAN-MOP?](#apa-itu-burhan-mop)
|
|
56
|
-
- [Mula Cepat](#mula-cepat)
|
|
57
|
-
- [Setup Wizard](#setup-wizard-bm)
|
|
58
|
-
- [Cara Guna Harian](#cara-guna-harian)
|
|
59
|
-
- [Agent dan Party Mode](#agent-dan-party-mode)
|
|
60
|
-
- [MOP Workflow](#mop-workflow-bm)
|
|
61
|
-
- [Artifacts](#artifacts-bm)
|
|
62
|
-
- [Autosycn](#autosycn-bm)
|
|
63
|
-
- [Auto Deploy](#auto-deploy-bm)
|
|
64
|
-
- [Rujukan CLI](#rujukan-cli)
|
|
65
|
-
- [Sokongan Provider](#sokongan-provider)
|
|
66
|
-
- [Publish ke npm](#publish-ke-npm)
|
|
67
|
-
- [Troubleshooting BM](#troubleshooting-bm)
|
|
26
|
+
<p align="center">
|
|
27
|
+
<strong>English</strong>
|
|
28
|
+
|
|
|
29
|
+
<a href="./README.bm.md">Bahasa Melayu</a>
|
|
30
|
+
</p>
|
|
68
31
|
|
|
69
32
|
---
|
|
70
33
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
## What is BURHAN-MOP?
|
|
34
|
+
## What Is BURHAN-MOP?
|
|
74
35
|
|
|
75
|
-
BURHAN-MOP is a portable MOP (Memory of Planet) core for AI
|
|
76
|
-
It gives AI
|
|
77
|
-
|
|
78
|
-
deployment setup guidance.
|
|
36
|
+
BURHAN-MOP is a portable **MOP (Memory of Planet) core** for AI coding workspaces.
|
|
37
|
+
It gives every supported AI provider the same project memory, agent rules,
|
|
38
|
+
workflow gates, artifact folders, autosycn flow, and deployment setup.
|
|
79
39
|
|
|
80
|
-
The goal is simple:
|
|
81
|
-
|
|
82
|
-
planned before coding, and how work should be saved.
|
|
40
|
+
The goal is simple: install once, then Claude, Codex / ChatGPT, Gemini, and
|
|
41
|
+
Antigravity can enter the same project with the same source of truth.
|
|
83
42
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
| Area | What BURHAN-MOP provides |
|
|
87
|
-
| --- | --- |
|
|
88
|
-
| Memory | Durable `.MOP/STATE.json` plus protocol instructions. |
|
|
89
|
-
| Security | First-action authentication gate with scrypt password verification. |
|
|
90
|
-
| Agents | Named agents with ownership rules and task routing. |
|
|
91
|
-
| Workflow | BMAD-inspired MOP workflow from idea to release. |
|
|
92
|
-
| Artifacts | Organized outputs under `.MOP/artifacts/<category>/<slug>/<type>.md`. |
|
|
93
|
-
| Git | Identity-safe `autosycn` flow using real user Git identity. |
|
|
94
|
-
| Deploy | Opt-in auto-deploy setup for GitHub, Docker, and Vercel. |
|
|
95
|
-
| Providers | Claude, Codex / ChatGPT coding agents, Gemini CLI, and Antigravity entrypoints. |
|
|
43
|
+
## Install
|
|
96
44
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
### Install from npm
|
|
100
|
-
|
|
101
|
-
BURHAN-MOP is published on npm as
|
|
102
|
-
[`burhan-mop`](https://www.npmjs.com/package/burhan-mop). Run this from the
|
|
103
|
-
project root where you want to install the MOP core:
|
|
45
|
+
Run this inside the project root:
|
|
104
46
|
|
|
105
47
|
```bash
|
|
106
48
|
npx burhan-mop install
|
|
49
|
+
npx burhan-mop doctor
|
|
107
50
|
```
|
|
108
51
|
|
|
109
52
|
Install into another folder:
|
|
@@ -112,1032 +55,97 @@ Install into another folder:
|
|
|
112
55
|
npx burhan-mop install --target "C:\path\to\project"
|
|
113
56
|
```
|
|
114
57
|
|
|
115
|
-
Overwrite existing
|
|
58
|
+
Overwrite an existing MOP install:
|
|
116
59
|
|
|
117
60
|
```bash
|
|
118
61
|
npx burhan-mop install --force
|
|
119
62
|
```
|
|
120
63
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
Use the GitHub source install only for development builds or as a fallback when
|
|
124
|
-
you specifically want the repository version instead of the npm release:
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
npx --yes github:BURHANDEV-ENTERPRISE/BURHAN-MOP install
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
### Verify the install
|
|
131
|
-
|
|
132
|
-
```bash
|
|
133
|
-
npx burhan-mop doctor
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
Or locally inside the project:
|
|
64
|
+
The installer shows a clean terminal UI by default. For automation, use JSON:
|
|
137
65
|
|
|
138
66
|
```bash
|
|
139
|
-
|
|
67
|
+
npx burhan-mop install --json
|
|
68
|
+
npx burhan-mop doctor --json
|
|
140
69
|
```
|
|
141
70
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
After installing the core into a project, start a new AI chat inside that
|
|
145
|
-
workspace. The first instruction is always to read `.MOP/STATE.json`.
|
|
146
|
-
|
|
147
|
-
If `initialized` is `false`, the AI must only run setup.
|
|
148
|
-
|
|
149
|
-
The setup wizard asks, in order:
|
|
150
|
-
|
|
151
|
-
1. Project name, defaulting to the current folder name.
|
|
152
|
-
2. Owner display name.
|
|
153
|
-
3. Owner codename.
|
|
154
|
-
4. Password.
|
|
155
|
-
5. Project mode: `solo` or `team`.
|
|
156
|
-
6. Conversation language.
|
|
157
|
-
7. Coding/adventure language.
|
|
158
|
-
8. GitHub project link.
|
|
159
|
-
9. GitHub username.
|
|
160
|
-
10. Git commit email.
|
|
161
|
-
11. Team join mode, if team mode is selected.
|
|
162
|
-
12. Whether to activate auto deploy now or later.
|
|
163
|
-
|
|
164
|
-
CLI setup example:
|
|
165
|
-
|
|
166
|
-
```bash
|
|
167
|
-
node .MOP/scripts/mop-core.mjs setup ^
|
|
168
|
-
--project-name "My Project" ^
|
|
169
|
-
--name "MoonWiRaja" ^
|
|
170
|
-
--codename moon ^
|
|
171
|
-
--password "your-password" ^
|
|
172
|
-
--mode team ^
|
|
173
|
-
--conversation-language "Melayu" ^
|
|
174
|
-
--coding-language "English" ^
|
|
175
|
-
--git-email "168633207+MoonWIRaja@users.noreply.github.com" ^
|
|
176
|
-
--git-name "MoonWiRaja" ^
|
|
177
|
-
--github-username "MoonWIRaja" ^
|
|
178
|
-
--github-url "https://github.com/owner/repo.git" ^
|
|
179
|
-
--join-mode owner-approved
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
## Daily Usage
|
|
183
|
-
|
|
184
|
-
### First action in every new session
|
|
185
|
-
|
|
186
|
-
The AI must read:
|
|
187
|
-
|
|
188
|
-
```text
|
|
189
|
-
.MOP/STATE.json
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
Then it follows:
|
|
193
|
-
|
|
194
|
-
```text
|
|
195
|
-
.MOP/PROTOCOL.md
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
If the core is initialized and no member is active, the AI asks only:
|
|
71
|
+
After install, open your AI coding chat in that project and run:
|
|
199
72
|
|
|
200
73
|
```text
|
|
201
|
-
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
No file inspection, answering, planning, or coding should happen before the
|
|
205
|
-
authentication gate passes.
|
|
206
|
-
|
|
207
|
-
### After login
|
|
208
|
-
|
|
209
|
-
The AI must route the task to a primary agent:
|
|
210
|
-
|
|
211
|
-
```bash
|
|
212
|
-
node .MOP/scripts/mop-core.mjs agent route --actor <codename> --task "<user task>"
|
|
74
|
+
/mop-setup
|
|
213
75
|
```
|
|
214
76
|
|
|
215
|
-
|
|
77
|
+
## What Gets Installed
|
|
216
78
|
|
|
217
|
-
|
|
218
|
-
node .MOP/scripts/mop-core.mjs agent activate --actor <codename> --role architect --title "System Architect" --name "Nimo"
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
## Agents and Party Mode
|
|
222
|
-
|
|
223
|
-
BURHAN-MOP treats agents as named identities, not just anonymous roles.
|
|
224
|
-
|
|
225
|
-
### Agent ownership
|
|
226
|
-
|
|
227
|
-
| Rule | Meaning |
|
|
79
|
+
| Path | Purpose |
|
|
228
80
|
| --- | --- |
|
|
229
|
-
|
|
|
230
|
-
|
|
|
231
|
-
|
|
|
232
|
-
|
|
|
233
|
-
|
|
234
|
-
|
|
81
|
+
| `.MOP/` | MOP state, protocol, scripts, workflow config, and artifact templates. |
|
|
82
|
+
| `AGENTS.md` | Provider-neutral instructions for Codex / ChatGPT coding agents. |
|
|
83
|
+
| `CLAUDE.md` | Claude Code entrypoint and behavior rules. |
|
|
84
|
+
| `GEMINI.md` | Gemini CLI entrypoint. |
|
|
85
|
+
| `.agents/` | Antigravity-compatible agents and skills. |
|
|
86
|
+
| `.codex/`, `.gemini/`, `.claude/` | Provider-specific config and skill surfaces. |
|
|
235
87
|
|
|
236
|
-
|
|
237
|
-
agents when the task truly needs them.
|
|
88
|
+
## Core Features
|
|
238
89
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
| User task | Primary agent | Possible support agents |
|
|
242
|
-
| --- | --- | --- |
|
|
243
|
-
| Build a new system | `architect` | `planner`, `researcher`, `prompt`, `coder`, `reviewer` |
|
|
244
|
-
| Design animated UI | `frontend` or `design` | `ux`, `accessibility`, `performance` |
|
|
245
|
-
| Review security | `security` | `reviewer`, `tester`, `architect` |
|
|
246
|
-
| Publish package | `deploy` or `github` | `devops`, `reviewer`, `memory` |
|
|
247
|
-
|
|
248
|
-
### Party Mode format
|
|
249
|
-
|
|
250
|
-
When several agents should reason together, BURHAN-MOP shows:
|
|
251
|
-
|
|
252
|
-
```text
|
|
253
|
-
PARTY MODE
|
|
254
|
-
|
|
255
|
-
agent: Nimo (architect) to agent: Pixel (frontend)
|
|
256
|
-
|
|
257
|
-
What browser constraints affect this scroll animation?
|
|
258
|
-
|
|
259
|
-
agent: Pixel (frontend) to agent: Nimo (architect)
|
|
260
|
-
|
|
261
|
-
We need frame-based scroll mapping, reduced-motion fallback, and asset preloading.
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
## MOP Workflow
|
|
265
|
-
|
|
266
|
-
MOP Workflow is BMAD-inspired, but adapted for MOP and multi-agent
|
|
267
|
-
use.
|
|
268
|
-
|
|
269
|
-
```text
|
|
270
|
-
idea -> brief -> prd -> ux-spec -> architecture -> story -> readiness -> implementation -> review -> release
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
Use the workflow helper:
|
|
274
|
-
|
|
275
|
-
```bash
|
|
276
|
-
node .MOP/scripts/mop-workflow.mjs help --actor <codename> --task "what should we do next?"
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
It returns:
|
|
280
|
-
|
|
281
|
-
- suggested phase
|
|
282
|
-
- lead agent role
|
|
283
|
-
- support or party roles
|
|
284
|
-
- next artifact type
|
|
285
|
-
- readiness gate requirement
|
|
286
|
-
- next command
|
|
287
|
-
|
|
288
|
-
Before coding:
|
|
289
|
-
|
|
290
|
-
```bash
|
|
291
|
-
node .MOP/scripts/mop-workflow.mjs gate readiness --actor <codename> --task "<task>"
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
For risky or important work:
|
|
295
|
-
|
|
296
|
-
```bash
|
|
297
|
-
node .MOP/scripts/mop-workflow.mjs review adversarial --actor <codename> --target "<plan or file>"
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
## Artifacts
|
|
301
|
-
|
|
302
|
-
Artifacts keep planning output organized and prevent root clutter.
|
|
303
|
-
|
|
304
|
-
Output layout:
|
|
305
|
-
|
|
306
|
-
```text
|
|
307
|
-
.MOP/artifacts/<category>/<artifact-slug>/<type>.md
|
|
308
|
-
```
|
|
309
|
-
|
|
310
|
-
Default categories:
|
|
311
|
-
|
|
312
|
-
| Category | Artifact types |
|
|
90
|
+
| Feature | What it does |
|
|
313
91
|
| --- | --- |
|
|
314
|
-
|
|
|
315
|
-
|
|
|
316
|
-
|
|
|
317
|
-
|
|
|
318
|
-
|
|
|
319
|
-
|
|
|
320
|
-
|
|
|
321
|
-
| `decisions` | `decision-log` |
|
|
322
|
-
|
|
323
|
-
Create an artifact:
|
|
324
|
-
|
|
325
|
-
```bash
|
|
326
|
-
node .MOP/scripts/mop-workflow.mjs artifact create --actor moon --type prd --title "Portfolio System"
|
|
327
|
-
```
|
|
328
|
-
|
|
329
|
-
Preview without writing:
|
|
330
|
-
|
|
331
|
-
```bash
|
|
332
|
-
node .MOP/scripts/mop-workflow.mjs artifact create --actor moon --type prd --title "Portfolio System" --dry-run
|
|
333
|
-
```
|
|
334
|
-
|
|
335
|
-
## Project Root Policy
|
|
336
|
-
|
|
337
|
-
BURHAN-MOP tells AI agents that the workspace root is the project root.
|
|
338
|
-
|
|
339
|
-
Agents should not create a wrapper folder such as:
|
|
340
|
-
|
|
341
|
-
```text
|
|
342
|
-
portfolio/
|
|
343
|
-
my-app/
|
|
344
|
-
<project-name>/
|
|
345
|
-
```
|
|
346
|
-
|
|
347
|
-
Then build inside it, unless the user explicitly asks for a monorepo or
|
|
348
|
-
multiple apps.
|
|
92
|
+
| Auth Gate | First action is always setup/login. No work starts before the gate passes. |
|
|
93
|
+
| Agent Router | Picks one primary agent and adds support agents only when useful. |
|
|
94
|
+
| Party Mode | Shows visible agent-to-agent discussion for multi-role decisions. |
|
|
95
|
+
| MOP Workflow | BMAD-inspired flow from idea to release with readiness checks. |
|
|
96
|
+
| Artifacts | Keeps plans, specs, reviews, and release notes under `.MOP/artifacts/`. |
|
|
97
|
+
| Autosycn | Commits and pushes as the real user, not as the AI tool identity. |
|
|
98
|
+
| Auto Deploy | Optional setup path for GitHub, Docker, and Vercel. |
|
|
349
99
|
|
|
350
|
-
|
|
100
|
+
## First Session Flow
|
|
351
101
|
|
|
352
102
|
```text
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
assets/
|
|
359
|
-
tests/
|
|
360
|
-
docs/
|
|
361
|
-
config/
|
|
362
|
-
scripts/
|
|
103
|
+
1. AI reads .MOP/STATE.json
|
|
104
|
+
2. If not initialized, AI asks you to run /mop-setup
|
|
105
|
+
3. Setup asks for project name, owner, codename, password, mode, language, and GitHub info
|
|
106
|
+
4. After login, every task goes through the Agent Router
|
|
107
|
+
5. Complex tasks use MOP Workflow and readiness gates before coding
|
|
363
108
|
```
|
|
364
109
|
|
|
365
|
-
##
|
|
366
|
-
|
|
367
|
-
`autosycn` is the intentional project spelling for the autosync skill.
|
|
368
|
-
|
|
369
|
-
It saves memory, commits with the real user identity, pushes to the correct
|
|
370
|
-
branch, and lets BURHAN-MOP review merges.
|
|
371
|
-
|
|
372
|
-
### Solo mode
|
|
373
|
-
|
|
374
|
-
| Action | Branch |
|
|
375
|
-
| --- | --- |
|
|
376
|
-
| Work | `main` |
|
|
377
|
-
| Push | `main` |
|
|
378
|
-
| Merge | Not needed |
|
|
379
|
-
|
|
380
|
-
### Team mode
|
|
381
|
-
|
|
382
|
-
| Action | Branch |
|
|
383
|
-
| --- | --- |
|
|
384
|
-
| Main trunk | `main` |
|
|
385
|
-
| User work | `dev/<codename>` |
|
|
386
|
-
| Review and merge | BURHAN-MOP checks and merges to `main` |
|
|
387
|
-
|
|
388
|
-
### Required user Git identity
|
|
389
|
-
|
|
390
|
-
```bash
|
|
391
|
-
node .MOP/scripts/mop-core.mjs member git-identity --actor moon --name "MoonWiRaja" --email "168633207+MoonWIRaja@users.noreply.github.com" --github-username "MoonWIRaja"
|
|
392
|
-
```
|
|
393
|
-
|
|
394
|
-
### Initialize autosycn
|
|
395
|
-
|
|
396
|
-
```bash
|
|
397
|
-
node .MOP/scripts/mop-autosycn.mjs init --actor moon --url "https://github.com/owner/repo.git"
|
|
398
|
-
```
|
|
399
|
-
|
|
400
|
-
### Before work
|
|
401
|
-
|
|
402
|
-
```bash
|
|
403
|
-
node .MOP/scripts/mop-autosycn.mjs preflight --actor moon
|
|
404
|
-
```
|
|
405
|
-
|
|
406
|
-
### After changes
|
|
407
|
-
|
|
408
|
-
```bash
|
|
409
|
-
node .MOP/scripts/mop-autosycn.mjs run --actor moon --reason "Implemented feature"
|
|
410
|
-
```
|
|
411
|
-
|
|
412
|
-
Important: GitHub commit attribution comes from the commit email. GitHub push
|
|
413
|
-
actor comes from the credential or SSH key used by `git push`.
|
|
414
|
-
|
|
415
|
-
## Auto Deploy
|
|
416
|
-
|
|
417
|
-
Auto deploy is available, but opt-in.
|
|
418
|
-
|
|
419
|
-
Supported providers:
|
|
420
|
-
|
|
421
|
-
| Provider | Purpose |
|
|
422
|
-
| --- | --- |
|
|
423
|
-
| GitHub | GitHub Pages or GitHub Actions deploy flow. |
|
|
424
|
-
| Docker | Dockerfile and compose-based deployment. |
|
|
425
|
-
| Vercel | Vercel project linking and deploy settings. |
|
|
426
|
-
|
|
427
|
-
The AI must ask:
|
|
428
|
-
|
|
429
|
-
```text
|
|
430
|
-
Nak aktifkan auto deploy sekarang? Pilih provider: GitHub, Docker, Vercel.
|
|
431
|
-
```
|
|
432
|
-
|
|
433
|
-
If the user says later or no, the AI replies:
|
|
434
|
-
|
|
435
|
-
```text
|
|
436
|
-
Okey, nanti kalau nak deploy beri tahu saya. Saya setup auto deploy.
|
|
437
|
-
```
|
|
438
|
-
|
|
439
|
-
## CLI Reference
|
|
440
|
-
|
|
441
|
-
### Package installer
|
|
110
|
+
## Useful Commands
|
|
442
111
|
|
|
443
112
|
```bash
|
|
444
113
|
npx burhan-mop install
|
|
445
|
-
npx burhan-mop install --target "C:\path\to\project"
|
|
446
|
-
npx burhan-mop install --force
|
|
447
114
|
npx burhan-mop doctor
|
|
448
115
|
npx burhan-mop package
|
|
449
116
|
```
|
|
450
117
|
|
|
451
|
-
|
|
118
|
+
Local project helpers:
|
|
452
119
|
|
|
453
120
|
```bash
|
|
454
121
|
node .MOP/scripts/mop-core.mjs status
|
|
455
122
|
node .MOP/scripts/mop-core.mjs validate
|
|
456
|
-
node .MOP/scripts/mop-
|
|
457
|
-
node .MOP/scripts/mop-
|
|
458
|
-
node .MOP/scripts/mop-core.mjs agent list
|
|
459
|
-
```
|
|
460
|
-
|
|
461
|
-
### Workflow
|
|
462
|
-
|
|
463
|
-
```bash
|
|
464
|
-
node .MOP/scripts/mop-workflow.mjs status --actor moon
|
|
465
|
-
node .MOP/scripts/mop-workflow.mjs help --actor moon --task "<task>"
|
|
466
|
-
node .MOP/scripts/mop-workflow.mjs artifact create --actor moon --type prd --title "Title"
|
|
467
|
-
node .MOP/scripts/mop-workflow.mjs gate readiness --actor moon --task "<task>"
|
|
468
|
-
node .MOP/scripts/mop-workflow.mjs review adversarial --actor moon --target "<target>"
|
|
469
|
-
```
|
|
470
|
-
|
|
471
|
-
## Provider Support
|
|
472
|
-
|
|
473
|
-
| Provider | Entry point |
|
|
474
|
-
| --- | --- |
|
|
475
|
-
| Codex / ChatGPT coding agents | `AGENTS.md`, `.codex/config.toml` |
|
|
476
|
-
| Claude Code | `CLAUDE.md`, `.claude/settings.json`, `.claude/skills/` |
|
|
477
|
-
| Gemini CLI | `GEMINI.md`, `.gemini/settings.json` |
|
|
478
|
-
| Antigravity | `.agents/AGENTS.md`, `.agents/skills/` |
|
|
479
|
-
| MCP-compatible clients | `.mcp.json` |
|
|
480
|
-
|
|
481
|
-
## Publishing to npm
|
|
482
|
-
|
|
483
|
-
Current public package:
|
|
484
|
-
|
|
485
|
-
| Field | Value |
|
|
486
|
-
| --- | --- |
|
|
487
|
-
| Package | [`burhan-mop`](https://www.npmjs.com/package/burhan-mop) |
|
|
488
|
-
| Source version | `0.1.1` |
|
|
489
|
-
| Latest npm release | See the npm badge above |
|
|
490
|
-
| Install command | `npx burhan-mop install` |
|
|
491
|
-
|
|
492
|
-
npm versions are immutable. Before publishing the next release, update
|
|
493
|
-
`package.json` to a new version such as `0.1.1`, `0.2.0`, or `1.0.0`.
|
|
494
|
-
|
|
495
|
-
### Local publish flow
|
|
496
|
-
|
|
497
|
-
```bash
|
|
498
|
-
npm login --auth-type=web
|
|
499
|
-
npm whoami
|
|
500
|
-
npm run validate
|
|
501
|
-
npm run doctor
|
|
502
|
-
npm run pack:dry
|
|
503
|
-
npm publish
|
|
123
|
+
node .MOP/scripts/mop-workflow.mjs help --actor <codename> --task "<task>"
|
|
124
|
+
node .MOP/scripts/mop-autosycn.mjs run --actor <codename> --reason "<what changed>"
|
|
504
125
|
```
|
|
505
126
|
|
|
506
|
-
|
|
127
|
+
## Team Workflow
|
|
507
128
|
|
|
508
|
-
|
|
509
|
-
npm publish --otp=123456
|
|
510
|
-
```
|
|
511
|
-
|
|
512
|
-
After publish:
|
|
513
|
-
|
|
514
|
-
```bash
|
|
515
|
-
npm view burhan-mop version
|
|
516
|
-
npx --yes burhan-mop package
|
|
517
|
-
npx --yes burhan-mop install --target "C:\path\to\empty-test-folder"
|
|
518
|
-
```
|
|
519
|
-
|
|
520
|
-
### GitHub Actions publish flow
|
|
521
|
-
|
|
522
|
-
This repository includes:
|
|
129
|
+
In team mode, work is pushed to a user branch first:
|
|
523
130
|
|
|
524
131
|
```text
|
|
525
|
-
|
|
526
|
-
```
|
|
527
|
-
|
|
528
|
-
Recommended secure setup:
|
|
529
|
-
|
|
530
|
-
1. Open the npm package settings after the first publish.
|
|
531
|
-
2. Configure trusted publishing for GitHub Actions.
|
|
532
|
-
3. Use repository `BURHANDEV-ENTERPRISE/BURHAN-MOP`.
|
|
533
|
-
4. Use workflow `.github/workflows/npm-publish.yml`.
|
|
534
|
-
5. Run the workflow manually with `dry_run: true`.
|
|
535
|
-
6. Run again with `dry_run: false` when ready.
|
|
536
|
-
|
|
537
|
-
The workflow checks whether the current `package.json` version already exists on
|
|
538
|
-
npm. If it does, the publish step is skipped so GitHub releases do not fail just
|
|
539
|
-
because a version was published manually first.
|
|
540
|
-
|
|
541
|
-
Alternative setup:
|
|
542
|
-
|
|
543
|
-
1. Create an npm granular access token with publish permission.
|
|
544
|
-
2. Add it to GitHub repository secrets as `NPM_TOKEN`.
|
|
545
|
-
3. Run the `Publish to npm` workflow.
|
|
546
|
-
|
|
547
|
-
## Troubleshooting
|
|
548
|
-
|
|
549
|
-
<details>
|
|
550
|
-
<summary>npm publish says ENEEDAUTH</summary>
|
|
551
|
-
|
|
552
|
-
You are not logged in to npm on this machine. Run:
|
|
553
|
-
|
|
554
|
-
```bash
|
|
555
|
-
npm login --auth-type=web
|
|
556
|
-
npm whoami
|
|
557
|
-
```
|
|
558
|
-
|
|
559
|
-
Then publish again.
|
|
560
|
-
</details>
|
|
561
|
-
|
|
562
|
-
<details>
|
|
563
|
-
<summary>npx burhan-mop install does not work</summary>
|
|
564
|
-
|
|
565
|
-
First confirm the public package is visible:
|
|
566
|
-
|
|
567
|
-
```bash
|
|
568
|
-
npm view burhan-mop version
|
|
569
|
-
```
|
|
570
|
-
|
|
571
|
-
Then run the install again:
|
|
572
|
-
|
|
573
|
-
```bash
|
|
574
|
-
npx --yes burhan-mop install
|
|
575
|
-
```
|
|
576
|
-
|
|
577
|
-
If npm registry access is unavailable but you need to test the repository
|
|
578
|
-
directly, use the GitHub source fallback:
|
|
579
|
-
|
|
580
|
-
```bash
|
|
581
|
-
npx --yes github:BURHANDEV-ENTERPRISE/BURHAN-MOP install
|
|
132
|
+
dev/<codename> -> BURHAN-MOP review -> main
|
|
582
133
|
```
|
|
583
|
-
</details>
|
|
584
|
-
|
|
585
|
-
<details>
|
|
586
|
-
<summary>GitHub shows AI or bot as the pusher</summary>
|
|
587
|
-
|
|
588
|
-
Fix the GitHub credential used by `git push`. The commit author comes from
|
|
589
|
-
Git email, but the push actor comes from GitHub CLI, Git Credential Manager, or
|
|
590
|
-
SSH key authentication.
|
|
591
|
-
</details>
|
|
592
|
-
|
|
593
|
-
<details>
|
|
594
|
-
<summary>CodeQL says no source code was seen</summary>
|
|
595
|
-
|
|
596
|
-
Keep the visible `bin/` entrypoints. They allow CodeQL default setup to detect
|
|
597
|
-
JavaScript source while the full implementation stays under `.MOP/`.
|
|
598
|
-
</details>
|
|
599
|
-
|
|
600
|
-
## Official npm References
|
|
601
|
-
|
|
602
|
-
- [Creating and publishing unscoped public packages](https://docs.npmjs.com/creating-and-publishing-unscoped-public-packages/)
|
|
603
|
-
- [Trusted publishing for npm packages](https://docs.npmjs.com/trusted-publishers/)
|
|
604
|
-
- [Accessing npm using two-factor authentication](https://docs.npmjs.com/accessing-npm-using-2fa/)
|
|
605
134
|
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
# Bahasa Melayu
|
|
609
|
-
|
|
610
|
-
## Apa itu BURHAN-MOP?
|
|
611
|
-
|
|
612
|
-
BURHAN-MOP ialah MOP (Memory of Planet) core yang portable untuk projek software yang
|
|
613
|
-
dibantu AI. Ia memberi AI coding agent satu memory project yang konsisten,
|
|
614
|
-
auth gate, identiti agent bernama, workflow stage, artifact output, autosycn,
|
|
615
|
-
dan panduan setup deploy.
|
|
135
|
+
BURHAN-MOP acts as the merge guardian. It checks the branch, validates state,
|
|
136
|
+
and merges only when the workflow is safe.
|
|
616
137
|
|
|
617
|
-
|
|
618
|
-
state project mana yang benar, agent mana patut lead, apa perlu dirancang
|
|
619
|
-
sebelum coding, dan bagaimana kerja perlu disimpan.
|
|
138
|
+
## Release
|
|
620
139
|
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
| Bahagian | Apa BURHAN-MOP buat |
|
|
140
|
+
| Item | Value |
|
|
624
141
|
| --- | --- |
|
|
625
|
-
|
|
|
626
|
-
|
|
|
627
|
-
|
|
|
628
|
-
|
|
|
629
|
-
| Artifacts | Output tersusun dalam `.MOP/artifacts/<category>/<slug>/<type>.md`. |
|
|
630
|
-
| Git | `autosycn` yang commit guna identiti Git user sebenar. |
|
|
631
|
-
| Deploy | Auto-deploy opt-in untuk GitHub, Docker, dan Vercel. |
|
|
632
|
-
| Providers | Claude, Codex / ChatGPT coding agents, Gemini CLI, dan Antigravity. |
|
|
633
|
-
|
|
634
|
-
## Mula Cepat
|
|
635
|
-
|
|
636
|
-
### Install dari npm
|
|
637
|
-
|
|
638
|
-
BURHAN-MOP sudah dipublish ke npm sebagai
|
|
639
|
-
[`burhan-mop`](https://www.npmjs.com/package/burhan-mop). Jalankan dari root
|
|
640
|
-
project yang mahu dipasang MOP core:
|
|
641
|
-
|
|
642
|
-
```bash
|
|
643
|
-
npx burhan-mop install
|
|
644
|
-
```
|
|
645
|
-
|
|
646
|
-
Install ke folder lain:
|
|
647
|
-
|
|
648
|
-
```bash
|
|
649
|
-
npx burhan-mop install --target "C:\path\to\project"
|
|
650
|
-
```
|
|
651
|
-
|
|
652
|
-
Paksa overwrite fail sedia ada:
|
|
653
|
-
|
|
654
|
-
```bash
|
|
655
|
-
npx burhan-mop install --force
|
|
656
|
-
```
|
|
657
|
-
|
|
658
|
-
### Install dari GitHub source
|
|
659
|
-
|
|
660
|
-
Guna install dari GitHub hanya untuk development build atau fallback bila mahu
|
|
661
|
-
uji versi terus daripada repo, bukan release npm:
|
|
662
|
-
|
|
663
|
-
```bash
|
|
664
|
-
npx --yes github:BURHANDEV-ENTERPRISE/BURHAN-MOP install
|
|
665
|
-
```
|
|
666
|
-
|
|
667
|
-
### Semak install
|
|
668
|
-
|
|
669
|
-
```bash
|
|
670
|
-
npx burhan-mop doctor
|
|
671
|
-
```
|
|
672
|
-
|
|
673
|
-
Atau secara local dalam project:
|
|
674
|
-
|
|
675
|
-
```bash
|
|
676
|
-
node .MOP/scripts/burhan-mop.mjs doctor
|
|
677
|
-
```
|
|
678
|
-
|
|
679
|
-
## Setup Wizard BM
|
|
680
|
-
|
|
681
|
-
Selepas install core ke dalam project, buka chat AI baru dalam workspace itu.
|
|
682
|
-
Arahan pertama AI ialah baca `.MOP/STATE.json`.
|
|
683
|
-
|
|
684
|
-
Jika `initialized` ialah `false`, AI hanya boleh jalankan setup.
|
|
685
|
-
|
|
686
|
-
Setup wizard akan tanya ikut urutan ini:
|
|
687
|
-
|
|
688
|
-
1. Nama project, default ikut nama folder semasa.
|
|
689
|
-
2. Nama paparan owner.
|
|
690
|
-
3. Codename owner.
|
|
691
|
-
4. Password.
|
|
692
|
-
5. Mode project: `solo` atau `team`.
|
|
693
|
-
6. Bahasa perbualan.
|
|
694
|
-
7. Bahasa coding/adventure.
|
|
695
|
-
8. Link GitHub project.
|
|
696
|
-
9. Username GitHub.
|
|
697
|
-
10. Git commit email.
|
|
698
|
-
11. Join mode jika pilih team mode.
|
|
699
|
-
12. Sama ada nak aktifkan auto deploy sekarang atau nanti.
|
|
700
|
-
|
|
701
|
-
Contoh setup CLI:
|
|
702
|
-
|
|
703
|
-
```bash
|
|
704
|
-
node .MOP/scripts/mop-core.mjs setup ^
|
|
705
|
-
--project-name "My Project" ^
|
|
706
|
-
--name "MoonWiRaja" ^
|
|
707
|
-
--codename moon ^
|
|
708
|
-
--password "your-password" ^
|
|
709
|
-
--mode team ^
|
|
710
|
-
--conversation-language "Melayu" ^
|
|
711
|
-
--coding-language "English" ^
|
|
712
|
-
--git-email "168633207+MoonWIRaja@users.noreply.github.com" ^
|
|
713
|
-
--git-name "MoonWiRaja" ^
|
|
714
|
-
--github-username "MoonWIRaja" ^
|
|
715
|
-
--github-url "https://github.com/owner/repo.git" ^
|
|
716
|
-
--join-mode owner-approved
|
|
717
|
-
```
|
|
718
|
-
|
|
719
|
-
## Cara Guna Harian
|
|
720
|
-
|
|
721
|
-
### First action setiap chat baru
|
|
722
|
-
|
|
723
|
-
AI mesti baca:
|
|
724
|
-
|
|
725
|
-
```text
|
|
726
|
-
.MOP/STATE.json
|
|
727
|
-
```
|
|
728
|
-
|
|
729
|
-
Kemudian ikut:
|
|
730
|
-
|
|
731
|
-
```text
|
|
732
|
-
.MOP/PROTOCOL.md
|
|
733
|
-
```
|
|
734
|
-
|
|
735
|
-
Jika core sudah setup tetapi tiada active member, AI hanya tanya:
|
|
736
|
-
|
|
737
|
-
```text
|
|
738
|
-
Codename dan password.
|
|
739
|
-
```
|
|
740
|
-
|
|
741
|
-
AI tidak patut jawab soalan, baca file lain, buat plan, atau coding sebelum
|
|
742
|
-
auth gate lulus.
|
|
743
|
-
|
|
744
|
-
### Selepas login
|
|
745
|
-
|
|
746
|
-
AI mesti route task kepada primary agent:
|
|
747
|
-
|
|
748
|
-
```bash
|
|
749
|
-
node .MOP/scripts/mop-core.mjs agent route --actor <codename> --task "<task user>"
|
|
750
|
-
```
|
|
751
|
-
|
|
752
|
-
Jika role agent belum ada nama, user perlu beri nama:
|
|
753
|
-
|
|
754
|
-
```bash
|
|
755
|
-
node .MOP/scripts/mop-core.mjs agent activate --actor <codename> --role architect --title "System Architect" --name "Nimo"
|
|
756
|
-
```
|
|
757
|
-
|
|
758
|
-
## Agent dan Party Mode
|
|
759
|
-
|
|
760
|
-
BURHAN-MOP anggap agent sebagai identiti bernama, bukan role kosong.
|
|
761
|
-
|
|
762
|
-
### Agent ownership
|
|
763
|
-
|
|
764
|
-
| Rule | Maksud |
|
|
765
|
-
| --- | --- |
|
|
766
|
-
| Nama sama | Consciousness agent dikongsi antara member dalam team mode. |
|
|
767
|
-
| Nama berbeza | Agent berbeza, walaupun role sama. |
|
|
768
|
-
| Owners | `agentRoster[].owners` tentukan siapa boleh guna agent itu. |
|
|
769
|
-
| Active agent | Setiap conversation atau action sebenar patut guna active named agent. |
|
|
770
|
-
|
|
771
|
-
### Router behavior
|
|
772
|
-
|
|
773
|
-
Router pilih satu primary agent. Ia boleh cadang banyak support agent jika task
|
|
774
|
-
memang perlukan kepakaran ramai agent.
|
|
775
|
-
|
|
776
|
-
Contoh:
|
|
777
|
-
|
|
778
|
-
| Task user | Primary agent | Support agent mungkin |
|
|
779
|
-
| --- | --- | --- |
|
|
780
|
-
| Bina system baru | `architect` | `planner`, `researcher`, `prompt`, `coder`, `reviewer` |
|
|
781
|
-
| Design UI animation | `frontend` atau `design` | `ux`, `accessibility`, `performance` |
|
|
782
|
-
| Review security | `security` | `reviewer`, `tester`, `architect` |
|
|
783
|
-
| Publish package | `deploy` atau `github` | `devops`, `reviewer`, `memory` |
|
|
784
|
-
|
|
785
|
-
### Format Party Mode
|
|
786
|
-
|
|
787
|
-
Bila beberapa agent perlu berbincang, BURHAN-MOP akan tunjuk:
|
|
788
|
-
|
|
789
|
-
```text
|
|
790
|
-
PARTY MODE
|
|
791
|
-
|
|
792
|
-
agent: Nimo (architect) to agent: Pixel (frontend)
|
|
793
|
-
|
|
794
|
-
Apa constraint browser untuk scroll animation ini?
|
|
795
|
-
|
|
796
|
-
agent: Pixel (frontend) to agent: Nimo (architect)
|
|
797
|
-
|
|
798
|
-
Kita perlukan frame-based scroll mapping, reduced-motion fallback, dan asset preloading.
|
|
799
|
-
```
|
|
800
|
-
|
|
801
|
-
## MOP Workflow BM
|
|
802
|
-
|
|
803
|
-
MOP Workflow diinspirasi BMAD, tetapi disesuaikan untuk MOP dan
|
|
804
|
-
multi-agent.
|
|
805
|
-
|
|
806
|
-
```text
|
|
807
|
-
idea -> brief -> prd -> ux-spec -> architecture -> story -> readiness -> implementation -> review -> release
|
|
808
|
-
```
|
|
809
|
-
|
|
810
|
-
Guna workflow helper:
|
|
811
|
-
|
|
812
|
-
```bash
|
|
813
|
-
node .MOP/scripts/mop-workflow.mjs help --actor <codename> --task "lepas ni buat apa?"
|
|
814
|
-
```
|
|
815
|
-
|
|
816
|
-
Ia akan pulangkan:
|
|
817
|
-
|
|
818
|
-
- suggested phase
|
|
819
|
-
- lead agent role
|
|
820
|
-
- support atau party roles
|
|
821
|
-
- next artifact type
|
|
822
|
-
- readiness gate requirement
|
|
823
|
-
- next command
|
|
824
|
-
|
|
825
|
-
Sebelum coding:
|
|
826
|
-
|
|
827
|
-
```bash
|
|
828
|
-
node .MOP/scripts/mop-workflow.mjs gate readiness --actor <codename> --task "<task>"
|
|
829
|
-
```
|
|
830
|
-
|
|
831
|
-
Untuk kerja penting atau risky:
|
|
832
|
-
|
|
833
|
-
```bash
|
|
834
|
-
node .MOP/scripts/mop-workflow.mjs review adversarial --actor <codename> --target "<plan atau file>"
|
|
835
|
-
```
|
|
836
|
-
|
|
837
|
-
## Artifacts BM
|
|
838
|
-
|
|
839
|
-
Artifacts menyimpan output planning supaya tidak bersepah di root.
|
|
840
|
-
|
|
841
|
-
Layout output:
|
|
842
|
-
|
|
843
|
-
```text
|
|
844
|
-
.MOP/artifacts/<category>/<artifact-slug>/<type>.md
|
|
845
|
-
```
|
|
846
|
-
|
|
847
|
-
Kategori default:
|
|
848
|
-
|
|
849
|
-
| Category | Artifact types |
|
|
850
|
-
| --- | --- |
|
|
851
|
-
| `plan` | `product-brief`, `prd`, `story` |
|
|
852
|
-
| `design` | `ux-spec` |
|
|
853
|
-
| `architecture` | `architecture` |
|
|
854
|
-
| `readiness` | `readiness-report` |
|
|
855
|
-
| `implementation` | `implementation-notes` |
|
|
856
|
-
| `review` | `review`, `adversarial-review` |
|
|
857
|
-
| `release` | `release-notes`, `handoff` |
|
|
858
|
-
| `decisions` | `decision-log` |
|
|
859
|
-
|
|
860
|
-
Buat artifact:
|
|
861
|
-
|
|
862
|
-
```bash
|
|
863
|
-
node .MOP/scripts/mop-workflow.mjs artifact create --actor moon --type prd --title "Portfolio System"
|
|
864
|
-
```
|
|
865
|
-
|
|
866
|
-
Preview tanpa tulis file:
|
|
867
|
-
|
|
868
|
-
```bash
|
|
869
|
-
node .MOP/scripts/mop-workflow.mjs artifact create --actor moon --type prd --title "Portfolio System" --dry-run
|
|
870
|
-
```
|
|
871
|
-
|
|
872
|
-
## Project Root Policy BM
|
|
873
|
-
|
|
874
|
-
BURHAN-MOP beritahu AI agent bahawa workspace root ialah project root.
|
|
875
|
-
|
|
876
|
-
Agent tidak patut buat wrapper folder seperti:
|
|
877
|
-
|
|
878
|
-
```text
|
|
879
|
-
portfolio/
|
|
880
|
-
my-app/
|
|
881
|
-
<project-name>/
|
|
882
|
-
```
|
|
883
|
-
|
|
884
|
-
Kemudian bina dalam folder itu, kecuali user memang minta monorepo atau banyak
|
|
885
|
-
app.
|
|
886
|
-
|
|
887
|
-
Folder top-level yang betul:
|
|
888
|
-
|
|
889
|
-
```text
|
|
890
|
-
src/
|
|
891
|
-
app/
|
|
892
|
-
pages/
|
|
893
|
-
components/
|
|
894
|
-
public/
|
|
895
|
-
assets/
|
|
896
|
-
tests/
|
|
897
|
-
docs/
|
|
898
|
-
config/
|
|
899
|
-
scripts/
|
|
900
|
-
```
|
|
901
|
-
|
|
902
|
-
## Autosycn BM
|
|
903
|
-
|
|
904
|
-
`autosycn` ialah ejaan project yang disengajakan untuk skill autosync.
|
|
905
|
-
|
|
906
|
-
Ia save memory, commit guna identiti user sebenar, push ke branch yang betul,
|
|
907
|
-
dan biarkan BURHAN-MOP review merge.
|
|
908
|
-
|
|
909
|
-
### Solo mode
|
|
910
|
-
|
|
911
|
-
| Action | Branch |
|
|
912
|
-
| --- | --- |
|
|
913
|
-
| Kerja | `main` |
|
|
914
|
-
| Push | `main` |
|
|
915
|
-
| Merge | Tidak perlu |
|
|
916
|
-
|
|
917
|
-
### Team mode
|
|
918
|
-
|
|
919
|
-
| Action | Branch |
|
|
920
|
-
| --- | --- |
|
|
921
|
-
| Main trunk | `main` |
|
|
922
|
-
| Kerja user | `dev/<codename>` |
|
|
923
|
-
| Review dan merge | BURHAN-MOP check dan merge ke `main` |
|
|
924
|
-
|
|
925
|
-
### Identiti Git user wajib
|
|
926
|
-
|
|
927
|
-
```bash
|
|
928
|
-
node .MOP/scripts/mop-core.mjs member git-identity --actor moon --name "MoonWiRaja" --email "168633207+MoonWIRaja@users.noreply.github.com" --github-username "MoonWIRaja"
|
|
929
|
-
```
|
|
930
|
-
|
|
931
|
-
### Initialize autosycn
|
|
932
|
-
|
|
933
|
-
```bash
|
|
934
|
-
node .MOP/scripts/mop-autosycn.mjs init --actor moon --url "https://github.com/owner/repo.git"
|
|
935
|
-
```
|
|
936
|
-
|
|
937
|
-
### Sebelum kerja
|
|
938
|
-
|
|
939
|
-
```bash
|
|
940
|
-
node .MOP/scripts/mop-autosycn.mjs preflight --actor moon
|
|
941
|
-
```
|
|
942
|
-
|
|
943
|
-
### Selepas perubahan
|
|
944
|
-
|
|
945
|
-
```bash
|
|
946
|
-
node .MOP/scripts/mop-autosycn.mjs run --actor moon --reason "Implemented feature"
|
|
947
|
-
```
|
|
948
|
-
|
|
949
|
-
Penting: GitHub commit attribution datang daripada commit email. GitHub push
|
|
950
|
-
actor datang daripada credential atau SSH key yang digunakan oleh `git push`.
|
|
951
|
-
|
|
952
|
-
## Auto Deploy BM
|
|
953
|
-
|
|
954
|
-
Auto deploy tersedia, tetapi opt-in.
|
|
955
|
-
|
|
956
|
-
Provider yang disokong:
|
|
957
|
-
|
|
958
|
-
| Provider | Tujuan |
|
|
959
|
-
| --- | --- |
|
|
960
|
-
| GitHub | GitHub Pages atau GitHub Actions deploy flow. |
|
|
961
|
-
| Docker | Dockerfile dan deployment berasaskan compose. |
|
|
962
|
-
| Vercel | Link project Vercel dan deploy settings. |
|
|
963
|
-
|
|
964
|
-
AI mesti tanya:
|
|
965
|
-
|
|
966
|
-
```text
|
|
967
|
-
Nak aktifkan auto deploy sekarang? Pilih provider: GitHub, Docker, Vercel.
|
|
968
|
-
```
|
|
969
|
-
|
|
970
|
-
Jika user jawab nanti atau tidak, AI jawab:
|
|
971
|
-
|
|
972
|
-
```text
|
|
973
|
-
Okey, nanti kalau nak deploy beri tahu saya. Saya setup auto deploy.
|
|
974
|
-
```
|
|
975
|
-
|
|
976
|
-
## Rujukan CLI
|
|
977
|
-
|
|
978
|
-
### Package installer
|
|
979
|
-
|
|
980
|
-
```bash
|
|
981
|
-
npx burhan-mop install
|
|
982
|
-
npx burhan-mop install --target "C:\path\to\project"
|
|
983
|
-
npx burhan-mop install --force
|
|
984
|
-
npx burhan-mop doctor
|
|
985
|
-
npx burhan-mop package
|
|
986
|
-
```
|
|
987
|
-
|
|
988
|
-
### Core
|
|
989
|
-
|
|
990
|
-
```bash
|
|
991
|
-
node .MOP/scripts/mop-core.mjs status
|
|
992
|
-
node .MOP/scripts/mop-core.mjs validate
|
|
993
|
-
node .MOP/scripts/mop-core.mjs login --codename moon --password "<password>"
|
|
994
|
-
node .MOP/scripts/mop-core.mjs agent route --actor moon --task "<task>"
|
|
995
|
-
node .MOP/scripts/mop-core.mjs agent list
|
|
996
|
-
```
|
|
997
|
-
|
|
998
|
-
### Workflow
|
|
999
|
-
|
|
1000
|
-
```bash
|
|
1001
|
-
node .MOP/scripts/mop-workflow.mjs status --actor moon
|
|
1002
|
-
node .MOP/scripts/mop-workflow.mjs help --actor moon --task "<task>"
|
|
1003
|
-
node .MOP/scripts/mop-workflow.mjs artifact create --actor moon --type prd --title "Title"
|
|
1004
|
-
node .MOP/scripts/mop-workflow.mjs gate readiness --actor moon --task "<task>"
|
|
1005
|
-
node .MOP/scripts/mop-workflow.mjs review adversarial --actor moon --target "<target>"
|
|
1006
|
-
```
|
|
1007
|
-
|
|
1008
|
-
## Sokongan Provider
|
|
1009
|
-
|
|
1010
|
-
| Provider | Entry point |
|
|
1011
|
-
| --- | --- |
|
|
1012
|
-
| Codex / ChatGPT coding agents | `AGENTS.md`, `.codex/config.toml` |
|
|
1013
|
-
| Claude Code | `CLAUDE.md`, `.claude/settings.json`, `.claude/skills/` |
|
|
1014
|
-
| Gemini CLI | `GEMINI.md`, `.gemini/settings.json` |
|
|
1015
|
-
| Antigravity | `.agents/AGENTS.md`, `.agents/skills/` |
|
|
1016
|
-
| MCP-compatible clients | `.mcp.json` |
|
|
1017
|
-
|
|
1018
|
-
## Publish ke npm
|
|
1019
|
-
|
|
1020
|
-
Package public semasa:
|
|
1021
|
-
|
|
1022
|
-
| Field | Nilai |
|
|
1023
|
-
| --- | --- |
|
|
1024
|
-
| Package | [`burhan-mop`](https://www.npmjs.com/package/burhan-mop) |
|
|
1025
|
-
| Versi source | `0.1.1` |
|
|
1026
|
-
| Release npm terbaru | Lihat badge npm di atas |
|
|
1027
|
-
| Command install | `npx burhan-mop install` |
|
|
1028
|
-
|
|
1029
|
-
Versi npm tidak boleh dipublish semula dengan nombor yang sama. Sebelum release
|
|
1030
|
-
seterusnya, ubah `package.json` kepada versi baru seperti `0.1.1`, `0.2.0`,
|
|
1031
|
-
atau `1.0.0`.
|
|
1032
|
-
|
|
1033
|
-
### Local publish flow
|
|
1034
|
-
|
|
1035
|
-
```bash
|
|
1036
|
-
npm login --auth-type=web
|
|
1037
|
-
npm whoami
|
|
1038
|
-
npm run validate
|
|
1039
|
-
npm run doctor
|
|
1040
|
-
npm run pack:dry
|
|
1041
|
-
npm publish
|
|
1042
|
-
```
|
|
1043
|
-
|
|
1044
|
-
Jika npm minta kod 2FA, publish dengan:
|
|
1045
|
-
|
|
1046
|
-
```bash
|
|
1047
|
-
npm publish --otp=123456
|
|
1048
|
-
```
|
|
1049
|
-
|
|
1050
|
-
Selepas publish:
|
|
1051
|
-
|
|
1052
|
-
```bash
|
|
1053
|
-
npm view burhan-mop version
|
|
1054
|
-
npx --yes burhan-mop package
|
|
1055
|
-
npx --yes burhan-mop install --target "C:\path\to\empty-test-folder"
|
|
1056
|
-
```
|
|
1057
|
-
|
|
1058
|
-
### GitHub Actions publish flow
|
|
1059
|
-
|
|
1060
|
-
Repo ini ada:
|
|
1061
|
-
|
|
1062
|
-
```text
|
|
1063
|
-
.github/workflows/npm-publish.yml
|
|
1064
|
-
```
|
|
1065
|
-
|
|
1066
|
-
Setup secure yang disarankan:
|
|
1067
|
-
|
|
1068
|
-
1. Buka npm package settings selepas first publish.
|
|
1069
|
-
2. Configure trusted publishing untuk GitHub Actions.
|
|
1070
|
-
3. Guna repository `BURHANDEV-ENTERPRISE/BURHAN-MOP`.
|
|
1071
|
-
4. Guna workflow `.github/workflows/npm-publish.yml`.
|
|
1072
|
-
5. Run workflow manual dengan `dry_run: true`.
|
|
1073
|
-
6. Run lagi dengan `dry_run: false` bila ready.
|
|
1074
|
-
|
|
1075
|
-
Workflow akan semak sama ada versi dalam `package.json` sudah wujud di npm. Jika
|
|
1076
|
-
sudah wujud, step publish akan diskip supaya GitHub release tidak gagal hanya
|
|
1077
|
-
kerana versi itu sudah dipublish manual terlebih dahulu.
|
|
1078
|
-
|
|
1079
|
-
Setup alternatif:
|
|
1080
|
-
|
|
1081
|
-
1. Buat npm granular access token dengan publish permission.
|
|
1082
|
-
2. Simpan dalam GitHub repository secrets sebagai `NPM_TOKEN`.
|
|
1083
|
-
3. Run workflow `Publish to npm`.
|
|
1084
|
-
|
|
1085
|
-
## Troubleshooting BM
|
|
1086
|
-
|
|
1087
|
-
<details>
|
|
1088
|
-
<summary>npm publish keluar ENEEDAUTH</summary>
|
|
1089
|
-
|
|
1090
|
-
Mesin belum login npm. Jalankan:
|
|
1091
|
-
|
|
1092
|
-
```bash
|
|
1093
|
-
npm login --auth-type=web
|
|
1094
|
-
npm whoami
|
|
1095
|
-
```
|
|
1096
|
-
|
|
1097
|
-
Kemudian publish semula.
|
|
1098
|
-
</details>
|
|
1099
|
-
|
|
1100
|
-
<details>
|
|
1101
|
-
<summary>npx burhan-mop install tidak jalan</summary>
|
|
1102
|
-
|
|
1103
|
-
Semak dulu package public boleh dicapai:
|
|
1104
|
-
|
|
1105
|
-
```bash
|
|
1106
|
-
npm view burhan-mop version
|
|
1107
|
-
```
|
|
1108
|
-
|
|
1109
|
-
Kemudian run install semula:
|
|
1110
|
-
|
|
1111
|
-
```bash
|
|
1112
|
-
npx --yes burhan-mop install
|
|
1113
|
-
```
|
|
1114
|
-
|
|
1115
|
-
Jika npm registry tidak boleh dicapai tetapi perlu test repo terus, guna fallback
|
|
1116
|
-
GitHub source:
|
|
1117
|
-
|
|
1118
|
-
```bash
|
|
1119
|
-
npx --yes github:BURHANDEV-ENTERPRISE/BURHAN-MOP install
|
|
1120
|
-
```
|
|
1121
|
-
</details>
|
|
1122
|
-
|
|
1123
|
-
<details>
|
|
1124
|
-
<summary>GitHub tunjuk AI atau bot sebagai pusher</summary>
|
|
1125
|
-
|
|
1126
|
-
Betulkan GitHub credential yang digunakan oleh `git push`. Commit author datang
|
|
1127
|
-
daripada Git email, tetapi push actor datang daripada GitHub CLI, Git
|
|
1128
|
-
Credential Manager, atau SSH key.
|
|
1129
|
-
</details>
|
|
1130
|
-
|
|
1131
|
-
<details>
|
|
1132
|
-
<summary>CodeQL kata no source code was seen</summary>
|
|
1133
|
-
|
|
1134
|
-
Kekalkan visible `bin/` entrypoints. Ia membantu CodeQL default setup detect
|
|
1135
|
-
JavaScript source sementara implementation penuh masih berada dalam
|
|
1136
|
-
`.MOP/`.
|
|
1137
|
-
</details>
|
|
142
|
+
| npm package | [`burhan-mop`](https://www.npmjs.com/package/burhan-mop) |
|
|
143
|
+
| latest command | `npx burhan-mop install` |
|
|
144
|
+
| GitHub release | [`v0.1.2`](https://github.com/BURHANDEV-ENTERPRISE/BURHAN-MOP/releases/tag/v0.1.2) |
|
|
145
|
+
| Node | `>=20` |
|
|
1138
146
|
|
|
1139
|
-
##
|
|
147
|
+
## Links
|
|
1140
148
|
|
|
1141
|
-
-
|
|
1142
|
-
-
|
|
1143
|
-
-
|
|
149
|
+
- npm: https://www.npmjs.com/package/burhan-mop
|
|
150
|
+
- GitHub: https://github.com/BURHANDEV-ENTERPRISE/BURHAN-MOP
|
|
151
|
+
- Bahasa Melayu README: [README.bm.md](./README.bm.md)
|