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/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=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,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
- <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?
34
+ ## What Is BURHAN-MOP?
74
35
 
75
- BURHAN-MOP is a portable MOP (Memory of Planet) 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.
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: 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.
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
- ### Core Promise
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
- ## Quick Start
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 BURHAN-MOP files:
58
+ Overwrite an existing MOP install:
116
59
 
117
60
  ```bash
118
61
  npx burhan-mop install --force
119
62
  ```
120
63
 
121
- ### Install from GitHub source
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
- node .MOP/scripts/burhan-mop.mjs doctor
67
+ npx burhan-mop install --json
68
+ npx burhan-mop doctor --json
140
69
  ```
141
70
 
142
- ## Setup Wizard
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
- Codename dan password.
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
- If an agent role is needed for the first time, the user names that agent:
77
+ ## What Gets Installed
216
78
 
217
- ```bash
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
- | Same name | Shared agent consciousness across members in team mode. |
230
- | Different name | Different agent, even if the role is the same. |
231
- | Owners | `agentRoster[].owners` decides who can use the agent. |
232
- | Active agent | Every real conversation or action should run through an active named agent. |
233
-
234
- ### Router behavior
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
- The router chooses one primary agent. It may recommend any number of support
237
- agents when the task truly needs them.
88
+ ## Core Features
238
89
 
239
- Examples:
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
- | `plan` | `product-brief`, `prd`, `story` |
315
- | `design` | `ux-spec` |
316
- | `architecture` | `architecture` |
317
- | `readiness` | `readiness-report` |
318
- | `implementation` | `implementation-notes` |
319
- | `review` | `review`, `adversarial-review` |
320
- | `release` | `release-notes`, `handoff` |
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
- Correct top-level folders include:
100
+ ## First Session Flow
351
101
 
352
102
  ```text
353
- src/
354
- app/
355
- pages/
356
- components/
357
- public/
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
- ## Autosycn
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
- ### Core
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-core.mjs login --codename moon --password "<password>"
457
- node .MOP/scripts/mop-core.mjs agent route --actor moon --task "<task>"
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
- If npm requires a 2FA code, publish with:
127
+ ## Team Workflow
507
128
 
508
- ```bash
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
- .github/workflows/npm-publish.yml
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
- Matlamat dia mudah: bila AI masuk workspace, AI perlu tahu siapa user aktif,
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
- ### Janji Utama
622
-
623
- | Bahagian | Apa BURHAN-MOP buat |
140
+ | Item | Value |
624
141
  | --- | --- |
625
- | Memory | State tahan lama dalam `.MOP/STATE.json` dan protocol rasmi. |
626
- | Security | First-action authentication gate dengan scrypt password verification. |
627
- | Agents | Agent bernama, ownership rule, dan routing ikut task. |
628
- | Workflow | MOP workflow yang diinspirasi BMAD dari idea sampai release. |
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
- ## Rujukan Rasmi npm
147
+ ## Links
1140
148
 
1141
- - [Creating and publishing unscoped public packages](https://docs.npmjs.com/creating-and-publishing-unscoped-public-packages/)
1142
- - [Trusted publishing for npm packages](https://docs.npmjs.com/trusted-publishers/)
1143
- - [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)