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