burhan-mop 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/.agents/AGENTS.md +54 -0
  2. package/.agents/skills/auto-deploy/SKILL.md +48 -0
  3. package/.agents/skills/autosycn/SKILL.md +75 -0
  4. package/.agents/skills/mop-help/SKILL.md +35 -0
  5. package/.agents/skills/ruflo-core/SKILL.md +35 -0
  6. package/.claude/agents/analysis/analyze-code-quality.md +179 -0
  7. package/.claude/agents/analysis/code-analyzer.md +210 -0
  8. package/.claude/agents/analysis/code-review/analyze-code-quality.md +179 -0
  9. package/.claude/agents/architecture/arch-system-design.md +157 -0
  10. package/.claude/agents/architecture/system-design/arch-system-design.md +155 -0
  11. package/.claude/agents/browser/browser-agent.yaml +182 -0
  12. package/.claude/agents/consensus/byzantine-coordinator.md +63 -0
  13. package/.claude/agents/consensus/crdt-synchronizer.md +997 -0
  14. package/.claude/agents/consensus/gossip-coordinator.md +63 -0
  15. package/.claude/agents/consensus/performance-benchmarker.md +851 -0
  16. package/.claude/agents/consensus/quorum-manager.md +823 -0
  17. package/.claude/agents/consensus/raft-manager.md +63 -0
  18. package/.claude/agents/consensus/security-manager.md +622 -0
  19. package/.claude/agents/core/planner.md +375 -0
  20. package/.claude/agents/custom/test-long-runner.md +44 -0
  21. package/.claude/agents/data/data-ml-model.md +445 -0
  22. package/.claude/agents/data/ml/data-ml-model.md +193 -0
  23. package/.claude/agents/development/backend/dev-backend-api.md +142 -0
  24. package/.claude/agents/development/dev-backend-api.md +345 -0
  25. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +164 -0
  26. package/.claude/agents/devops/ops-cicd-github.md +165 -0
  27. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +174 -0
  28. package/.claude/agents/documentation/docs-api-openapi.md +355 -0
  29. package/.claude/agents/flow-nexus/app-store.md +88 -0
  30. package/.claude/agents/flow-nexus/authentication.md +69 -0
  31. package/.claude/agents/flow-nexus/challenges.md +81 -0
  32. package/.claude/agents/flow-nexus/neural-network.md +88 -0
  33. package/.claude/agents/flow-nexus/payments.md +83 -0
  34. package/.claude/agents/flow-nexus/sandbox.md +76 -0
  35. package/.claude/agents/flow-nexus/swarm.md +76 -0
  36. package/.claude/agents/flow-nexus/user-tools.md +96 -0
  37. package/.claude/agents/flow-nexus/workflow.md +84 -0
  38. package/.claude/agents/github/code-review-swarm.md +377 -0
  39. package/.claude/agents/github/github-modes.md +173 -0
  40. package/.claude/agents/github/issue-tracker.md +576 -0
  41. package/.claude/agents/github/multi-repo-swarm.md +553 -0
  42. package/.claude/agents/github/pr-manager.md +438 -0
  43. package/.claude/agents/github/project-board-sync.md +509 -0
  44. package/.claude/agents/github/release-manager.md +605 -0
  45. package/.claude/agents/github/release-swarm.md +583 -0
  46. package/.claude/agents/github/repo-architect.md +398 -0
  47. package/.claude/agents/github/swarm-issue.md +573 -0
  48. package/.claude/agents/github/swarm-pr.md +428 -0
  49. package/.claude/agents/github/sync-coordinator.md +452 -0
  50. package/.claude/agents/github/workflow-automation.md +903 -0
  51. package/.claude/agents/goal/agent.md +816 -0
  52. package/.claude/agents/optimization/benchmark-suite.md +665 -0
  53. package/.claude/agents/optimization/load-balancer.md +431 -0
  54. package/.claude/agents/optimization/performance-monitor.md +672 -0
  55. package/.claude/agents/optimization/resource-allocator.md +674 -0
  56. package/.claude/agents/optimization/topology-optimizer.md +808 -0
  57. package/.claude/agents/payments/agentic-payments.md +126 -0
  58. package/.claude/agents/sona/sona-learning-optimizer.md +74 -0
  59. package/.claude/agents/sparc/architecture.md +699 -0
  60. package/.claude/agents/sparc/pseudocode.md +520 -0
  61. package/.claude/agents/sparc/refinement.md +802 -0
  62. package/.claude/agents/sparc/specification.md +478 -0
  63. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +225 -0
  64. package/.claude/agents/specialized/spec-mobile-react-native.md +227 -0
  65. package/.claude/agents/sublinear/consensus-coordinator.md +338 -0
  66. package/.claude/agents/sublinear/matrix-optimizer.md +185 -0
  67. package/.claude/agents/sublinear/pagerank-analyzer.md +299 -0
  68. package/.claude/agents/sublinear/performance-optimizer.md +368 -0
  69. package/.claude/agents/sublinear/trading-predictor.md +246 -0
  70. package/.claude/agents/swarm/adaptive-coordinator.md +1127 -0
  71. package/.claude/agents/swarm/hierarchical-coordinator.md +710 -0
  72. package/.claude/agents/swarm/mesh-coordinator.md +963 -0
  73. package/.claude/agents/templates/automation-smart-agent.md +205 -0
  74. package/.claude/agents/templates/base-template-generator.md +289 -0
  75. package/.claude/agents/templates/coordinator-swarm-init.md +90 -0
  76. package/.claude/agents/templates/github-pr-manager.md +177 -0
  77. package/.claude/agents/templates/implementer-sparc-coder.md +259 -0
  78. package/.claude/agents/templates/memory-coordinator.md +187 -0
  79. package/.claude/agents/templates/orchestrator-task.md +139 -0
  80. package/.claude/agents/templates/performance-analyzer.md +199 -0
  81. package/.claude/agents/templates/sparc-coordinator.md +514 -0
  82. package/.claude/agents/testing/production-validator.md +395 -0
  83. package/.claude/agents/testing/tdd-london-swarm.md +244 -0
  84. package/.claude/agents/v3/aidefence-guardian.md +282 -0
  85. package/.claude/agents/v3/claims-authorizer.md +208 -0
  86. package/.claude/agents/v3/collective-intelligence-coordinator.md +993 -0
  87. package/.claude/agents/v3/ddd-domain-expert.md +220 -0
  88. package/.claude/agents/v3/injection-analyst.md +236 -0
  89. package/.claude/agents/v3/performance-engineer.md +1233 -0
  90. package/.claude/agents/v3/pii-detector.md +151 -0
  91. package/.claude/agents/v3/reasoningbank-learner.md +213 -0
  92. package/.claude/agents/v3/security-architect-aidefence.md +410 -0
  93. package/.claude/agents/v3/security-architect.md +867 -0
  94. package/.claude/agents/v3/swarm-memory-manager.md +157 -0
  95. package/.claude/agents/v3/v3-integration-architect.md +205 -0
  96. package/.claude/commands/agents/README.md +50 -0
  97. package/.claude/commands/agents/agent-capabilities.md +140 -0
  98. package/.claude/commands/agents/agent-coordination.md +28 -0
  99. package/.claude/commands/agents/agent-spawning.md +28 -0
  100. package/.claude/commands/agents/agent-types.md +216 -0
  101. package/.claude/commands/agents/health.md +139 -0
  102. package/.claude/commands/agents/list.md +100 -0
  103. package/.claude/commands/agents/logs.md +130 -0
  104. package/.claude/commands/agents/metrics.md +122 -0
  105. package/.claude/commands/agents/pool.md +127 -0
  106. package/.claude/commands/agents/spawn.md +140 -0
  107. package/.claude/commands/agents/status.md +115 -0
  108. package/.claude/commands/agents/stop.md +102 -0
  109. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +54 -0
  110. package/.claude/commands/analysis/README.md +9 -0
  111. package/.claude/commands/analysis/bottleneck-detect.md +162 -0
  112. package/.claude/commands/analysis/performance-bottlenecks.md +59 -0
  113. package/.claude/commands/analysis/performance-report.md +25 -0
  114. package/.claude/commands/analysis/token-efficiency.md +45 -0
  115. package/.claude/commands/analysis/token-usage.md +25 -0
  116. package/.claude/commands/automation/README.md +9 -0
  117. package/.claude/commands/automation/auto-agent.md +122 -0
  118. package/.claude/commands/automation/self-healing.md +106 -0
  119. package/.claude/commands/automation/session-memory.md +90 -0
  120. package/.claude/commands/automation/smart-agents.md +73 -0
  121. package/.claude/commands/automation/smart-spawn.md +25 -0
  122. package/.claude/commands/automation/workflow-select.md +25 -0
  123. package/.claude/commands/claude-flow-help.md +103 -0
  124. package/.claude/commands/claude-flow-memory.md +107 -0
  125. package/.claude/commands/claude-flow-swarm.md +205 -0
  126. package/.claude/commands/coordination/README.md +9 -0
  127. package/.claude/commands/coordination/agent-spawn.md +25 -0
  128. package/.claude/commands/coordination/init.md +44 -0
  129. package/.claude/commands/coordination/orchestrate.md +43 -0
  130. package/.claude/commands/coordination/spawn.md +45 -0
  131. package/.claude/commands/coordination/swarm-init.md +85 -0
  132. package/.claude/commands/coordination/task-orchestrate.md +25 -0
  133. package/.claude/commands/github/README.md +11 -0
  134. package/.claude/commands/github/code-review-swarm.md +514 -0
  135. package/.claude/commands/github/code-review.md +25 -0
  136. package/.claude/commands/github/github-modes.md +147 -0
  137. package/.claude/commands/github/github-swarm.md +121 -0
  138. package/.claude/commands/github/issue-tracker.md +292 -0
  139. package/.claude/commands/github/issue-triage.md +25 -0
  140. package/.claude/commands/github/multi-repo-swarm.md +519 -0
  141. package/.claude/commands/github/pr-enhance.md +26 -0
  142. package/.claude/commands/github/pr-manager.md +170 -0
  143. package/.claude/commands/github/project-board-sync.md +471 -0
  144. package/.claude/commands/github/release-manager.md +340 -0
  145. package/.claude/commands/github/release-swarm.md +544 -0
  146. package/.claude/commands/github/repo-analyze.md +25 -0
  147. package/.claude/commands/github/repo-architect.md +367 -0
  148. package/.claude/commands/github/swarm-issue.md +485 -0
  149. package/.claude/commands/github/swarm-pr.md +288 -0
  150. package/.claude/commands/github/sync-coordinator.md +303 -0
  151. package/.claude/commands/github/workflow-automation.md +442 -0
  152. package/.claude/commands/hive-mind/README.md +17 -0
  153. package/.claude/commands/hive-mind/hive-mind-consensus.md +8 -0
  154. package/.claude/commands/hive-mind/hive-mind-init.md +18 -0
  155. package/.claude/commands/hive-mind/hive-mind-memory.md +8 -0
  156. package/.claude/commands/hive-mind/hive-mind-metrics.md +8 -0
  157. package/.claude/commands/hive-mind/hive-mind-resume.md +8 -0
  158. package/.claude/commands/hive-mind/hive-mind-sessions.md +8 -0
  159. package/.claude/commands/hive-mind/hive-mind-spawn.md +21 -0
  160. package/.claude/commands/hive-mind/hive-mind-status.md +8 -0
  161. package/.claude/commands/hive-mind/hive-mind-stop.md +8 -0
  162. package/.claude/commands/hive-mind/hive-mind-wizard.md +8 -0
  163. package/.claude/commands/hive-mind/hive-mind.md +27 -0
  164. package/.claude/commands/hooks/README.md +11 -0
  165. package/.claude/commands/hooks/overview.md +58 -0
  166. package/.claude/commands/hooks/post-edit.md +117 -0
  167. package/.claude/commands/hooks/post-task.md +112 -0
  168. package/.claude/commands/hooks/pre-edit.md +113 -0
  169. package/.claude/commands/hooks/pre-task.md +111 -0
  170. package/.claude/commands/hooks/session-end.md +118 -0
  171. package/.claude/commands/hooks/setup.md +103 -0
  172. package/.claude/commands/memory/README.md +9 -0
  173. package/.claude/commands/memory/memory-persist.md +25 -0
  174. package/.claude/commands/memory/memory-search.md +25 -0
  175. package/.claude/commands/memory/memory-usage.md +25 -0
  176. package/.claude/commands/memory/neural.md +47 -0
  177. package/.claude/commands/monitoring/README.md +9 -0
  178. package/.claude/commands/monitoring/agent-metrics.md +25 -0
  179. package/.claude/commands/monitoring/agents.md +44 -0
  180. package/.claude/commands/monitoring/real-time-view.md +25 -0
  181. package/.claude/commands/monitoring/status.md +46 -0
  182. package/.claude/commands/monitoring/swarm-monitor.md +25 -0
  183. package/.claude/commands/optimization/README.md +9 -0
  184. package/.claude/commands/optimization/auto-topology.md +62 -0
  185. package/.claude/commands/optimization/cache-manage.md +25 -0
  186. package/.claude/commands/optimization/parallel-execute.md +25 -0
  187. package/.claude/commands/optimization/parallel-execution.md +50 -0
  188. package/.claude/commands/optimization/topology-optimize.md +25 -0
  189. package/.claude/commands/pair/README.md +261 -0
  190. package/.claude/commands/pair/commands.md +546 -0
  191. package/.claude/commands/pair/config.md +510 -0
  192. package/.claude/commands/pair/examples.md +512 -0
  193. package/.claude/commands/pair/modes.md +348 -0
  194. package/.claude/commands/pair/session.md +407 -0
  195. package/.claude/commands/pair/start.md +209 -0
  196. package/.claude/commands/sparc/analyzer.md +52 -0
  197. package/.claude/commands/sparc/architect.md +53 -0
  198. package/.claude/commands/sparc/ask.md +97 -0
  199. package/.claude/commands/sparc/batch-executor.md +54 -0
  200. package/.claude/commands/sparc/code.md +89 -0
  201. package/.claude/commands/sparc/coder.md +54 -0
  202. package/.claude/commands/sparc/debug.md +83 -0
  203. package/.claude/commands/sparc/debugger.md +54 -0
  204. package/.claude/commands/sparc/designer.md +53 -0
  205. package/.claude/commands/sparc/devops.md +109 -0
  206. package/.claude/commands/sparc/docs-writer.md +80 -0
  207. package/.claude/commands/sparc/documenter.md +54 -0
  208. package/.claude/commands/sparc/innovator.md +54 -0
  209. package/.claude/commands/sparc/integration.md +83 -0
  210. package/.claude/commands/sparc/mcp.md +117 -0
  211. package/.claude/commands/sparc/memory-manager.md +54 -0
  212. package/.claude/commands/sparc/optimizer.md +54 -0
  213. package/.claude/commands/sparc/orchestrator.md +132 -0
  214. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -0
  215. package/.claude/commands/sparc/refinement-optimization-mode.md +83 -0
  216. package/.claude/commands/sparc/researcher.md +54 -0
  217. package/.claude/commands/sparc/reviewer.md +54 -0
  218. package/.claude/commands/sparc/security-review.md +80 -0
  219. package/.claude/commands/sparc/sparc-modes.md +174 -0
  220. package/.claude/commands/sparc/sparc.md +111 -0
  221. package/.claude/commands/sparc/spec-pseudocode.md +80 -0
  222. package/.claude/commands/sparc/supabase-admin.md +348 -0
  223. package/.claude/commands/sparc/swarm-coordinator.md +54 -0
  224. package/.claude/commands/sparc/tdd.md +54 -0
  225. package/.claude/commands/sparc/tester.md +54 -0
  226. package/.claude/commands/sparc/tutorial.md +79 -0
  227. package/.claude/commands/sparc/workflow-manager.md +54 -0
  228. package/.claude/commands/stream-chain/pipeline.md +121 -0
  229. package/.claude/commands/stream-chain/run.md +70 -0
  230. package/.claude/commands/swarm/README.md +15 -0
  231. package/.claude/commands/swarm/analysis.md +95 -0
  232. package/.claude/commands/swarm/development.md +96 -0
  233. package/.claude/commands/swarm/examples.md +168 -0
  234. package/.claude/commands/swarm/maintenance.md +102 -0
  235. package/.claude/commands/swarm/optimization.md +117 -0
  236. package/.claude/commands/swarm/research.md +136 -0
  237. package/.claude/commands/swarm/swarm-analysis.md +8 -0
  238. package/.claude/commands/swarm/swarm-background.md +8 -0
  239. package/.claude/commands/swarm/swarm-init.md +19 -0
  240. package/.claude/commands/swarm/swarm-modes.md +8 -0
  241. package/.claude/commands/swarm/swarm-monitor.md +8 -0
  242. package/.claude/commands/swarm/swarm-spawn.md +19 -0
  243. package/.claude/commands/swarm/swarm-status.md +8 -0
  244. package/.claude/commands/swarm/swarm-strategies.md +8 -0
  245. package/.claude/commands/swarm/swarm.md +87 -0
  246. package/.claude/commands/swarm/testing.md +131 -0
  247. package/.claude/commands/training/README.md +9 -0
  248. package/.claude/commands/training/model-update.md +25 -0
  249. package/.claude/commands/training/neural-patterns.md +108 -0
  250. package/.claude/commands/training/neural-train.md +75 -0
  251. package/.claude/commands/training/pattern-learn.md +25 -0
  252. package/.claude/commands/training/specialization.md +63 -0
  253. package/.claude/commands/truth/start.md +143 -0
  254. package/.claude/commands/verify/check.md +50 -0
  255. package/.claude/commands/verify/start.md +128 -0
  256. package/.claude/commands/workflows/README.md +9 -0
  257. package/.claude/commands/workflows/development.md +78 -0
  258. package/.claude/commands/workflows/research.md +63 -0
  259. package/.claude/commands/workflows/workflow-create.md +25 -0
  260. package/.claude/commands/workflows/workflow-execute.md +25 -0
  261. package/.claude/commands/workflows/workflow-export.md +25 -0
  262. package/.claude/helpers/README.md +97 -0
  263. package/.claude/helpers/adr-compliance.sh +186 -0
  264. package/.claude/helpers/auto-commit.sh +178 -0
  265. package/.claude/helpers/auto-memory-hook.mjs +368 -0
  266. package/.claude/helpers/checkpoint-manager.sh +251 -0
  267. package/.claude/helpers/daemon-manager.sh +252 -0
  268. package/.claude/helpers/ddd-tracker.sh +144 -0
  269. package/.claude/helpers/github-safe.js +156 -0
  270. package/.claude/helpers/github-setup.sh +45 -0
  271. package/.claude/helpers/guidance-hook.sh +13 -0
  272. package/.claude/helpers/guidance-hooks.sh +102 -0
  273. package/.claude/helpers/health-monitor.sh +108 -0
  274. package/.claude/helpers/hook-handler.cjs +286 -0
  275. package/.claude/helpers/intelligence.cjs +1031 -0
  276. package/.claude/helpers/learning-hooks.sh +329 -0
  277. package/.claude/helpers/learning-optimizer.sh +127 -0
  278. package/.claude/helpers/learning-service.mjs +1144 -0
  279. package/.claude/helpers/memory.js +83 -0
  280. package/.claude/helpers/metrics-db.mjs +488 -0
  281. package/.claude/helpers/pattern-consolidator.sh +86 -0
  282. package/.claude/helpers/perf-worker.sh +160 -0
  283. package/.claude/helpers/post-commit +16 -0
  284. package/.claude/helpers/pre-commit +26 -0
  285. package/.claude/helpers/quick-start.sh +19 -0
  286. package/.claude/helpers/router.js +105 -0
  287. package/.claude/helpers/ruflo-hook.cjs +59 -0
  288. package/.claude/helpers/security-scanner.sh +127 -0
  289. package/.claude/helpers/session.js +157 -0
  290. package/.claude/helpers/setup-mcp.sh +18 -0
  291. package/.claude/helpers/standard-checkpoint-hooks.sh +189 -0
  292. package/.claude/helpers/statusline-hook.sh +21 -0
  293. package/.claude/helpers/statusline.cjs +693 -0
  294. package/.claude/helpers/statusline.js +352 -0
  295. package/.claude/helpers/swarm-comms.sh +353 -0
  296. package/.claude/helpers/swarm-hooks.sh +761 -0
  297. package/.claude/helpers/swarm-monitor.sh +211 -0
  298. package/.claude/helpers/sync-v3-metrics.sh +245 -0
  299. package/.claude/helpers/update-v3-progress.sh +166 -0
  300. package/.claude/helpers/v3-quick-status.sh +58 -0
  301. package/.claude/helpers/v3.sh +111 -0
  302. package/.claude/helpers/validate-v3-config.sh +216 -0
  303. package/.claude/helpers/worker-manager.sh +170 -0
  304. package/.claude/settings.json +285 -0
  305. package/.claude/skills/agentdb-advanced/SKILL.md +550 -0
  306. package/.claude/skills/agentdb-learning/SKILL.md +545 -0
  307. package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -0
  308. package/.claude/skills/agentdb-optimization/SKILL.md +509 -0
  309. package/.claude/skills/agentdb-vector-search/SKILL.md +339 -0
  310. package/.claude/skills/auto-deploy/SKILL.md +31 -0
  311. package/.claude/skills/autosycn/SKILL.md +30 -0
  312. package/.claude/skills/browser/SKILL.md +204 -0
  313. package/.claude/skills/dual-mode/README.md +71 -0
  314. package/.claude/skills/dual-mode/dual-collect.md +103 -0
  315. package/.claude/skills/dual-mode/dual-coordinate.md +85 -0
  316. package/.claude/skills/dual-mode/dual-spawn.md +81 -0
  317. package/.claude/skills/flow-nexus-neural/SKILL.md +727 -0
  318. package/.claude/skills/flow-nexus-platform/SKILL.md +1154 -0
  319. package/.claude/skills/flow-nexus-swarm/SKILL.md +604 -0
  320. package/.claude/skills/github-code-review/SKILL.md +1125 -0
  321. package/.claude/skills/github-multi-repo/SKILL.md +862 -0
  322. package/.claude/skills/github-project-management/SKILL.md +1262 -0
  323. package/.claude/skills/github-release-management/SKILL.md +1064 -0
  324. package/.claude/skills/github-workflow-automation/SKILL.md +1047 -0
  325. package/.claude/skills/hooks-automation/SKILL.md +1201 -0
  326. package/.claude/skills/mop-help/SKILL.md +35 -0
  327. package/.claude/skills/pair-programming/SKILL.md +1202 -0
  328. package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -0
  329. package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -0
  330. package/.claude/skills/skill-builder/SKILL.md +910 -0
  331. package/.claude/skills/sparc-methodology/SKILL.md +1106 -0
  332. package/.claude/skills/stream-chain/SKILL.md +560 -0
  333. package/.claude/skills/swarm-advanced/SKILL.md +970 -0
  334. package/.claude/skills/swarm-orchestration/SKILL.md +179 -0
  335. package/.claude/skills/v3-cli-modernization/SKILL.md +872 -0
  336. package/.claude/skills/v3-core-implementation/SKILL.md +797 -0
  337. package/.claude/skills/v3-ddd-architecture/SKILL.md +442 -0
  338. package/.claude/skills/v3-integration-deep/SKILL.md +241 -0
  339. package/.claude/skills/v3-mcp-optimization/SKILL.md +777 -0
  340. package/.claude/skills/v3-memory-unification/SKILL.md +174 -0
  341. package/.claude/skills/v3-performance-optimization/SKILL.md +390 -0
  342. package/.claude/skills/v3-security-overhaul/SKILL.md +82 -0
  343. package/.claude/skills/v3-swarm-coordination/SKILL.md +340 -0
  344. package/.claude/skills/verification-quality/SKILL.md +691 -0
  345. package/.claude-flow/CAPABILITIES.md +403 -0
  346. package/.claude-flow/config.yaml +43 -0
  347. package/.claude-flow/metrics/learning.json +17 -0
  348. package/.claude-flow/metrics/swarm-activity.json +18 -0
  349. package/.claude-flow/metrics/v3-progress.json +26 -0
  350. package/.claude-flow/security/audit-status.json +8 -0
  351. package/.codex/config.toml +39 -0
  352. package/.gemini/settings.json +49 -0
  353. package/.mcp.json +55 -0
  354. package/.memoryofplanet/PROTOCOL.md +436 -0
  355. package/.memoryofplanet/STATE.json +561 -0
  356. package/.memoryofplanet/config/defaults.json +46 -0
  357. package/.memoryofplanet/config/team.json +7 -0
  358. package/.memoryofplanet/scripts/burhan-mop.mjs +124 -0
  359. package/.memoryofplanet/scripts/mop-auto-deploy.mjs +153 -0
  360. package/.memoryofplanet/scripts/mop-autosycn.mjs +617 -0
  361. package/.memoryofplanet/scripts/mop-core.mjs +774 -0
  362. package/.memoryofplanet/scripts/mop-workflow.mjs +348 -0
  363. package/.memoryofplanet/templates/artifacts/adversarial-review.md +33 -0
  364. package/.memoryofplanet/templates/artifacts/architecture.md +28 -0
  365. package/.memoryofplanet/templates/artifacts/decision-log.md +21 -0
  366. package/.memoryofplanet/templates/artifacts/handoff.md +21 -0
  367. package/.memoryofplanet/templates/artifacts/implementation-notes.md +21 -0
  368. package/.memoryofplanet/templates/artifacts/prd.md +29 -0
  369. package/.memoryofplanet/templates/artifacts/product-brief.md +30 -0
  370. package/.memoryofplanet/templates/artifacts/readiness-report.md +25 -0
  371. package/.memoryofplanet/templates/artifacts/release-notes.md +21 -0
  372. package/.memoryofplanet/templates/artifacts/review.md +21 -0
  373. package/.memoryofplanet/templates/artifacts/story.md +25 -0
  374. package/.memoryofplanet/templates/artifacts/ux-spec.md +32 -0
  375. package/AGENTS.md +126 -0
  376. package/CLAUDE.md +235 -0
  377. package/GEMINI.md +19 -0
  378. package/README.md +1096 -0
  379. package/bin/burhan-mop.mjs +2 -0
  380. package/bin/mop-core.mjs +2 -0
  381. package/bin/mop-workflow.mjs +2 -0
  382. package/package.json +66 -0
@@ -0,0 +1,348 @@
1
+ #!/usr/bin/env node
2
+ import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
3
+ import { dirname, join, resolve } from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+
6
+ const here = dirname(fileURLToPath(import.meta.url));
7
+ const coreDir = resolve(here, '..');
8
+ const rootDir = resolve(coreDir, '..');
9
+ const statePath = join(coreDir, 'STATE.json');
10
+
11
+ function now() {
12
+ return new Date().toISOString();
13
+ }
14
+
15
+ function readJson(path, fallback = {}) {
16
+ if (!existsSync(path)) return fallback;
17
+ return JSON.parse(readFileSync(path, 'utf8'));
18
+ }
19
+
20
+ function readState() {
21
+ return readJson(statePath);
22
+ }
23
+
24
+ function writeState(state) {
25
+ const tmp = `${statePath}.tmp`;
26
+ writeFileSync(tmp, `${JSON.stringify(state, null, 2)}\n`, 'utf8');
27
+ renameSync(tmp, statePath);
28
+ }
29
+
30
+ function parseArgs(argv) {
31
+ const out = { _: [] };
32
+ for (let i = 0; i < argv.length; i += 1) {
33
+ const item = argv[i];
34
+ if (!item.startsWith('--')) {
35
+ out._.push(item);
36
+ continue;
37
+ }
38
+ const key = item.slice(2);
39
+ const next = argv[i + 1];
40
+ if (!next || next.startsWith('--')) {
41
+ out[key] = true;
42
+ } else {
43
+ out[key] = next;
44
+ i += 1;
45
+ }
46
+ }
47
+ return out;
48
+ }
49
+
50
+ function requireArg(args, key) {
51
+ const value = args[key];
52
+ if (!value || value === true) throw new Error(`Missing --${key}`);
53
+ return String(value);
54
+ }
55
+
56
+ function slug(value) {
57
+ return String(value)
58
+ .trim()
59
+ .toLowerCase()
60
+ .replace(/[^a-z0-9]+/g, '-')
61
+ .replace(/^-+|-+$/g, '');
62
+ }
63
+
64
+ function deepMerge(base, override) {
65
+ if (!override || typeof override !== 'object' || Array.isArray(override)) return base;
66
+ const result = { ...(base || {}) };
67
+ for (const [key, value] of Object.entries(override)) {
68
+ if (value && typeof value === 'object' && !Array.isArray(value)) {
69
+ result[key] = deepMerge(result[key] || {}, value);
70
+ } else if (value !== undefined) {
71
+ result[key] = value;
72
+ }
73
+ }
74
+ return result;
75
+ }
76
+
77
+ function mergedConfig(state, actor = '') {
78
+ const files = state.customization?.files || {};
79
+ const defaults = readJson(join(rootDir, files.defaults || '.memoryofplanet/config/defaults.json'));
80
+ const team = readJson(join(rootDir, files.team || '.memoryofplanet/config/team.json'));
81
+ const memberPattern = files.memberPattern || '.memoryofplanet/config/members/<codename>.json';
82
+ const memberPath = actor ? join(rootDir, memberPattern.replace('<codename>', slug(actor))) : '';
83
+ const member = memberPath ? readJson(memberPath) : {};
84
+ return deepMerge(deepMerge(defaults, team), member);
85
+ }
86
+
87
+ function actorAllowed(state, actor) {
88
+ if (!state.initialized) return true;
89
+ if (!actor) throw new Error('Missing --actor');
90
+ if (!state.members?.[actor]) throw new Error(`Unknown actor: ${actor}`);
91
+ return true;
92
+ }
93
+
94
+ function phaseById(state, id) {
95
+ return (state.workflow?.phases || []).find((phase) => phase.id === id) || null;
96
+ }
97
+
98
+ function inferPhase(state, task) {
99
+ const text = task.toLowerCase();
100
+ if (/\b(deploy|release|vercel|docker|publish)\b/.test(text)) return 'release';
101
+ if (/\b(review|semak|audit|bug|risk|risiko)\b/.test(text)) return 'review';
102
+ if (/\b(code|implement|fix|build|buat file|ubah file)\b/.test(text)) return 'readiness';
103
+ if (/\b(architecture|database|api|backend|security|infra)\b/.test(text)) return 'architecture';
104
+ if (/\b(ui|ux|design|screen|layout|animation|scroll)\b/.test(text)) return 'ux-spec';
105
+ if (/\b(prd|requirement|acceptance|user story)\b/.test(text)) return 'prd';
106
+ if (/\b(plan|idea|konsep|scope|roadmap)\b/.test(text)) return 'brief';
107
+ return state.workflow?.currentPhase || state.workflow?.phaseOrder?.[0] || 'idea';
108
+ }
109
+
110
+ function currentAndNext(state, task = '') {
111
+ const phaseId = task ? inferPhase(state, task) : (state.workflow?.currentPhase || state.workflow?.phaseOrder?.[0] || 'idea');
112
+ const phase = phaseById(state, phaseId) || phaseById(state, 'idea');
113
+ const order = state.workflow?.phaseOrder || [];
114
+ const index = Math.max(0, order.indexOf(phase?.id));
115
+ const nextPhase = phaseById(state, order[index + 1]) || null;
116
+ return { phase, nextPhase };
117
+ }
118
+
119
+ function status(args) {
120
+ const state = readState();
121
+ const actor = args.actor ? slug(args.actor) : '';
122
+ const config = mergedConfig(state, actor);
123
+ const { phase, nextPhase } = currentAndNext(state, String(args.task || ''));
124
+ console.log(JSON.stringify({
125
+ workflow: state.workflow?.name || 'MOP Workflow',
126
+ enabled: state.workflow?.enabled !== false,
127
+ currentPhase: state.workflow?.currentPhase,
128
+ suggestedPhase: phase,
129
+ nextPhase,
130
+ customization: config.workflow || {},
131
+ artifacts: {
132
+ directory: state.artifacts?.directory || '.memoryofplanet/artifacts',
133
+ layout: state.artifacts?.layout || 'category/artifact-slug/type.md',
134
+ folderByType: state.artifacts?.folderByType || {}
135
+ },
136
+ projectRootPolicy: state.projectRootPolicy || config.projectRootPolicy || {},
137
+ readinessGate: state.readinessGate || {},
138
+ adversarialReview: state.adversarialReview || {}
139
+ }, null, 2));
140
+ }
141
+
142
+ function help(args) {
143
+ const state = readState();
144
+ const actor = args.actor ? slug(args.actor) : '';
145
+ if (actor) actorAllowed(state, actor);
146
+ const task = String(args.task || args._?.join(' ') || '');
147
+ const { phase, nextPhase } = currentAndNext(state, task);
148
+ const readinessRequired = ['readiness', 'implementation'].includes(phase?.id) || /\b(code|implement|build|fix)\b/i.test(task);
149
+ const nextArtifact = phase?.artifact || 'product-brief';
150
+ const nextCategory = artifactCategoryFor(state, args, nextArtifact);
151
+ console.log(JSON.stringify({
152
+ question: task || 'lepas ni buat apa?',
153
+ answer: phase ? `Next best step: ${phase.title}.` : 'Next best step: capture the idea.',
154
+ phase: phase?.id || 'idea',
155
+ leadAgentRole: phase?.primaryRole || 'planner',
156
+ partyRoles: phase?.partyRoles || [],
157
+ nextArtifact,
158
+ nextArtifactCategory: nextCategory,
159
+ nextArtifactPathPattern: `${state.artifacts?.directory || '.memoryofplanet/artifacts'}/${nextCategory}/<artifact-slug>/${nextArtifact}.md`,
160
+ nextCommand: `node .memoryofplanet/scripts/mop-workflow.mjs artifact create --actor ${actor || '<codename>'} --type ${nextArtifact} --title "<title>"`,
161
+ readinessRequired,
162
+ readinessCommand: `node .memoryofplanet/scripts/mop-workflow.mjs gate readiness --actor ${actor || '<codename>'} --task "<task>"`,
163
+ nextPhase: nextPhase?.id || null
164
+ }, null, 2));
165
+ }
166
+
167
+ function setPhase(args) {
168
+ const state = readState();
169
+ const actor = slug(requireArg(args, 'actor'));
170
+ actorAllowed(state, actor);
171
+ const phase = requireArg(args, 'phase');
172
+ if (!phaseById(state, phase)) throw new Error(`Unknown phase: ${phase}`);
173
+ state.workflow.currentPhase = phase;
174
+ state.ledger ||= [];
175
+ state.ledger.push({ at: now(), actor, kind: 'workflow-phase', summary: `Set MOP workflow phase to ${phase}.` });
176
+ writeState(state);
177
+ console.log(`Workflow phase set: ${phase}`);
178
+ }
179
+
180
+ function renderTemplate(template, values) {
181
+ return template.replace(/\{\{([a-zA-Z0-9_-]+)\}\}/g, (_, key) => values[key] || '');
182
+ }
183
+
184
+ function artifactCategoryFor(state, args, type) {
185
+ const folderByType = state.artifacts?.folderByType || {};
186
+ const selected = args.category || args.folder || folderByType[type] || state.artifacts?.defaultCategory || 'general';
187
+ return slug(selected) || 'general';
188
+ }
189
+
190
+ function artifactCreate(args) {
191
+ const state = readState();
192
+ const actor = slug(requireArg(args, 'actor'));
193
+ actorAllowed(state, actor);
194
+ const type = slug(requireArg(args, 'type'));
195
+ if (!(state.artifacts?.types || []).includes(type)) throw new Error(`Unknown artifact type: ${type}`);
196
+ const title = String(args.title || type);
197
+ const artifactSlug = slug(args.slug || title || type);
198
+ const category = artifactCategoryFor(state, args, type);
199
+ const artifactRoot = join(rootDir, state.artifacts?.directory || '.memoryofplanet/artifacts', category, artifactSlug);
200
+ const templatePath = join(rootDir, state.artifacts?.templateDirectory || '.memoryofplanet/templates/artifacts', `${type}.md`);
201
+ const template = existsSync(templatePath)
202
+ ? readFileSync(templatePath, 'utf8')
203
+ : `# {{title}}\n\n## Notes\n\n`;
204
+ const outputPath = join(artifactRoot, `${type}.md`);
205
+ const relativePath = outputPath.replace(rootDir, '').replace(/^[\\/]/, '');
206
+ if (args['dry-run'] === true) {
207
+ console.log(JSON.stringify({
208
+ ok: true,
209
+ dryRun: true,
210
+ actor,
211
+ type,
212
+ category,
213
+ layout: state.artifacts?.layout || 'category/artifact-slug/type.md',
214
+ path: relativePath
215
+ }, null, 2));
216
+ return;
217
+ }
218
+ mkdirSync(artifactRoot, { recursive: true });
219
+ if (existsSync(outputPath) && args.force !== true) {
220
+ throw new Error(`Artifact already exists: ${outputPath}. Re-run with --force to overwrite.`);
221
+ }
222
+ const content = renderTemplate(template, {
223
+ title,
224
+ intent: String(args.intent || ''),
225
+ user: String(args.user || ''),
226
+ problem: String(args.problem || ''),
227
+ outcome: String(args.outcome || ''),
228
+ goal: String(args.goal || ''),
229
+ context: String(args.context || ''),
230
+ summary: String(args.summary || ''),
231
+ state: String(args.state || ''),
232
+ decision: String(args.decision || ''),
233
+ date: now()
234
+ });
235
+ writeFileSync(outputPath, content, 'utf8');
236
+ console.log(JSON.stringify({
237
+ ok: true,
238
+ actor,
239
+ type,
240
+ category,
241
+ layout: state.artifacts?.layout || 'category/artifact-slug/type.md',
242
+ path: relativePath
243
+ }, null, 2));
244
+ }
245
+
246
+ function readiness(args) {
247
+ const state = readState();
248
+ const actor = slug(requireArg(args, 'actor'));
249
+ actorAllowed(state, actor);
250
+ const task = String(args.task || args._?.join(' ') || '');
251
+ const artifact = String(args.artifact || '');
252
+ const text = `${task}\n${artifact && existsSync(join(rootDir, artifact)) ? readFileSync(join(rootDir, artifact), 'utf8') : ''}`.toLowerCase();
253
+ const checks = state.readinessGate?.checks || [];
254
+ const missing = [];
255
+ const passed = [];
256
+ for (const check of checks) {
257
+ let ok = false;
258
+ if (check === 'intent-clear') ok = task.length > 20;
259
+ else if (check === 'user-and-success-defined') ok = /\b(user|pengguna|owner|customer|success|berjaya|goal|outcome)\b/.test(text);
260
+ else if (check === 'scope-bounded') ok = /\b(scope|in:|out:|mvp|phase|limit|batas)\b/.test(text);
261
+ else if (check === 'artifacts-current') ok = Boolean(artifact) || /\b(prd|brief|architecture|story|spec)\b/.test(text);
262
+ else if (check === 'data-contract-clear') ok = /\b(api|data|schema|contract|interface|field|endpoint|storage)\b/.test(text);
263
+ else if (check === 'acceptance-criteria-present') ok = /\b(acceptance|criteria|done|siap|test|expected)\b/.test(text);
264
+ else if (check === 'risks-reviewed') ok = /\b(risk|risiko|tradeoff|edge|failure|fallback)\b/.test(text);
265
+ else if (check === 'tests-planned') ok = /\b(test|testing|qa|validate|verification|playwright|unit)\b/.test(text);
266
+ else if (check === 'rollback-or-undo-known') ok = /\b(rollback|undo|backup|revert|restore)\b/.test(text);
267
+ if (ok) passed.push(check);
268
+ else missing.push(check);
269
+ }
270
+ const status = missing.length === 0 ? 'ready' : missing.length <= 3 ? 'needs-clarity' : 'blocked';
271
+ console.log(JSON.stringify({
272
+ status,
273
+ canCode: status === 'ready',
274
+ passed,
275
+ missing,
276
+ questions: missing.map((check) => `Clarify ${check.replaceAll('-', ' ')}.`),
277
+ next: status === 'ready'
278
+ ? 'Proceed to implementation with autosycn.'
279
+ : 'Ask clarification or create/update the required artifact before coding.'
280
+ }, null, 2));
281
+ }
282
+
283
+ function adversarialReview(args) {
284
+ const state = readState();
285
+ const actor = slug(requireArg(args, 'actor'));
286
+ actorAllowed(state, actor);
287
+ const target = String(args.target || args.task || args._?.join(' ') || '');
288
+ const mode = String(args.mode || state.adversarialReview?.defaultMode || 'constructive-red-team');
289
+ const result = {
290
+ mode,
291
+ target,
292
+ reviewRoles: state.adversarialReview?.reviewRoles || [],
293
+ prompts: [
294
+ 'What assumption could be false?',
295
+ 'Where could user intent be misunderstood?',
296
+ 'What breaks on mobile, slow devices, or bad network?',
297
+ 'What security/privacy issue could appear?',
298
+ 'What test would catch the most expensive failure?',
299
+ 'What is the smallest safer version?'
300
+ ],
301
+ verdictOptions: ['proceed', 'proceed-with-changes', 'block']
302
+ };
303
+ if (args.write === true) {
304
+ artifactCreate({
305
+ actor,
306
+ type: 'adversarial-review',
307
+ title: String(args.title || 'Adversarial Review'),
308
+ context: target,
309
+ force: args.force
310
+ });
311
+ }
312
+ console.log(JSON.stringify(result, null, 2));
313
+ }
314
+
315
+ function configShow(args) {
316
+ const state = readState();
317
+ const actor = args.actor ? slug(args.actor) : '';
318
+ console.log(JSON.stringify(mergedConfig(state, actor), null, 2));
319
+ }
320
+
321
+ function main() {
322
+ const [command, subcommand, ...rest] = process.argv.slice(2);
323
+ const args = parseArgs(rest);
324
+ if (command === 'status') return status(args);
325
+ if (command === 'help' || command === 'next') return help(parseArgs([subcommand, ...rest].filter(Boolean)));
326
+ if (command === 'phase' && subcommand === 'set') return setPhase(args);
327
+ if (command === 'artifact' && subcommand === 'create') return artifactCreate(args);
328
+ if (command === 'gate' && subcommand === 'readiness') return readiness(args);
329
+ if (command === 'review' && subcommand === 'adversarial') return adversarialReview(args);
330
+ if (command === 'config' && subcommand === 'show') return configShow(args);
331
+
332
+ console.log(`Usage:
333
+ node .memoryofplanet/scripts/mop-workflow.mjs status [--actor CODE] [--task TEXT]
334
+ node .memoryofplanet/scripts/mop-workflow.mjs help --actor CODE --task "what user asked"
335
+ node .memoryofplanet/scripts/mop-workflow.mjs next --actor CODE --task "what user asked"
336
+ node .memoryofplanet/scripts/mop-workflow.mjs phase set --actor CODE --phase prd
337
+ node .memoryofplanet/scripts/mop-workflow.mjs artifact create --actor CODE --type prd --title "Title" [--category plan] [--dry-run]
338
+ node .memoryofplanet/scripts/mop-workflow.mjs gate readiness --actor CODE --task "task" [--artifact path]
339
+ node .memoryofplanet/scripts/mop-workflow.mjs review adversarial --actor CODE --target "plan or file" [--write]
340
+ node .memoryofplanet/scripts/mop-workflow.mjs config show [--actor CODE]`);
341
+ }
342
+
343
+ try {
344
+ main();
345
+ } catch (error) {
346
+ console.error(error.message);
347
+ process.exitCode = 1;
348
+ }
@@ -0,0 +1,33 @@
1
+ # {{title}} Adversarial Review
2
+
3
+ ## Challenge
4
+
5
+ What could be wrong with the current plan?
6
+
7
+ ## Assumption Attacks
8
+
9
+ -
10
+
11
+ ## Failure Modes
12
+
13
+ -
14
+
15
+ ## Security / Privacy Risks
16
+
17
+ -
18
+
19
+ ## UX / Product Risks
20
+
21
+ -
22
+
23
+ ## Performance / Operational Risks
24
+
25
+ -
26
+
27
+ ## Safer Alternatives
28
+
29
+ -
30
+
31
+ ## Verdict
32
+
33
+ proceed | proceed-with-changes | block
@@ -0,0 +1,28 @@
1
+ # {{title}} Architecture
2
+
3
+ ## Context
4
+
5
+ {{context}}
6
+
7
+ ## System Shape
8
+
9
+ - Frontend:
10
+ - Backend:
11
+ - Data:
12
+ - Integrations:
13
+
14
+ ## Data Contracts
15
+
16
+ -
17
+
18
+ ## Key Decisions
19
+
20
+ -
21
+
22
+ ## Risks / Tradeoffs
23
+
24
+ -
25
+
26
+ ## Deployment
27
+
28
+ -
@@ -0,0 +1,21 @@
1
+ # {{title}} Decision Log
2
+
3
+ ## Decision
4
+
5
+ {{decision}}
6
+
7
+ ## Context
8
+
9
+ {{context}}
10
+
11
+ ## Options Considered
12
+
13
+ -
14
+
15
+ ## Consequences
16
+
17
+ -
18
+
19
+ ## Date
20
+
21
+ {{date}}
@@ -0,0 +1,21 @@
1
+ # {{title}} Handoff
2
+
3
+ ## Current State
4
+
5
+ {{state}}
6
+
7
+ ## Done
8
+
9
+ -
10
+
11
+ ## Next
12
+
13
+ -
14
+
15
+ ## Blockers
16
+
17
+ -
18
+
19
+ ## Important Context
20
+
21
+ -
@@ -0,0 +1,21 @@
1
+ # {{title}} Implementation Notes
2
+
3
+ ## Summary
4
+
5
+ {{summary}}
6
+
7
+ ## Files Changed
8
+
9
+ -
10
+
11
+ ## Decisions
12
+
13
+ -
14
+
15
+ ## Tests / Validation
16
+
17
+ -
18
+
19
+ ## Follow Up
20
+
21
+ -
@@ -0,0 +1,29 @@
1
+ # {{title}} PRD
2
+
3
+ ## Goal
4
+
5
+ {{goal}}
6
+
7
+ ## Users
8
+
9
+ -
10
+
11
+ ## Requirements
12
+
13
+ -
14
+
15
+ ## User Stories
16
+
17
+ - As a user, I want ... so that ...
18
+
19
+ ## Acceptance Criteria
20
+
21
+ -
22
+
23
+ ## Risks
24
+
25
+ -
26
+
27
+ ## Open Questions
28
+
29
+ -
@@ -0,0 +1,30 @@
1
+ # {{title}}
2
+
3
+ ## Intent
4
+
5
+ {{intent}}
6
+
7
+ ## User
8
+
9
+ {{user}}
10
+
11
+ ## Problem
12
+
13
+ {{problem}}
14
+
15
+ ## Desired Outcome
16
+
17
+ {{outcome}}
18
+
19
+ ## Scope
20
+
21
+ - In:
22
+ - Out:
23
+
24
+ ## Unknowns
25
+
26
+ -
27
+
28
+ ## Next Phase
29
+
30
+ PRD
@@ -0,0 +1,25 @@
1
+ # {{title}} Readiness Report
2
+
3
+ ## Status
4
+
5
+ blocked | needs-clarity | ready
6
+
7
+ ## Checks
8
+
9
+ - [ ] intent-clear
10
+ - [ ] user-and-success-defined
11
+ - [ ] scope-bounded
12
+ - [ ] artifacts-current
13
+ - [ ] data-contract-clear
14
+ - [ ] acceptance-criteria-present
15
+ - [ ] risks-reviewed
16
+ - [ ] tests-planned
17
+ - [ ] rollback-or-undo-known
18
+
19
+ ## Missing Information
20
+
21
+ -
22
+
23
+ ## Decision
24
+
25
+ -
@@ -0,0 +1,21 @@
1
+ # {{title}} Release Notes
2
+
3
+ ## Changes
4
+
5
+ -
6
+
7
+ ## Validation
8
+
9
+ -
10
+
11
+ ## Deployment
12
+
13
+ -
14
+
15
+ ## Rollback
16
+
17
+ -
18
+
19
+ ## Handoff
20
+
21
+ -
@@ -0,0 +1,21 @@
1
+ # {{title}} Review
2
+
3
+ ## Findings
4
+
5
+ -
6
+
7
+ ## Risks
8
+
9
+ -
10
+
11
+ ## Required Changes
12
+
13
+ -
14
+
15
+ ## Tests
16
+
17
+ -
18
+
19
+ ## Decision
20
+
21
+ approved | changes-requested | blocked
@@ -0,0 +1,25 @@
1
+ # {{title}} Implementation Story
2
+
3
+ ## Story
4
+
5
+ As a user, I want ... so that ...
6
+
7
+ ## Scope
8
+
9
+ -
10
+
11
+ ## Tasks
12
+
13
+ - [ ]
14
+
15
+ ## Acceptance Criteria
16
+
17
+ - [ ]
18
+
19
+ ## Test Plan
20
+
21
+ -
22
+
23
+ ## Dependencies
24
+
25
+ -
@@ -0,0 +1,32 @@
1
+ # {{title}} UX Spec
2
+
3
+ ## Experience Goal
4
+
5
+ {{goal}}
6
+
7
+ ## Key Flows
8
+
9
+ -
10
+
11
+ ## Screens / States
12
+
13
+ - Default:
14
+ - Loading:
15
+ - Empty:
16
+ - Error:
17
+ - Success:
18
+
19
+ ## Visual Direction
20
+
21
+ -
22
+
23
+ ## Interaction / Motion
24
+
25
+ -
26
+
27
+ ## Accessibility
28
+
29
+ - Keyboard:
30
+ - Screen reader:
31
+ - Contrast:
32
+ - Reduced motion: