@morya-ui/setup 0.3.2 → 0.3.4
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 +103 -103
- package/bin/morya-ui-setup.js +14 -14
- package/catalog/skills.json +46 -46
- package/package.json +5 -3
- package/src/cli.mjs +335 -335
- package/src/copy-template.mjs +78 -78
- package/src/fs-utils.mjs +24 -24
- package/src/install.mjs +63 -63
- package/src/mcp.mjs +50 -50
- package/src/package-json.mjs +30 -30
- package/src/skills.mjs +223 -223
- package/src/styles.mjs +119 -119
- package/template/.agents/skills/morya-ui-pages/SKILL.md +184 -162
- package/template/.agents/skills/morya-ui-pages/evals/evals.json +89 -71
- package/template/.agents/skills/morya-ui-pages/references/component-index.md +99 -98
- package/template/.agents/skills/morya-ui-pages/references/decision-recipes.md +1591 -0
- package/template/.agents/skills/morya-ui-pages/references/design-system.md +101 -100
- package/template/.agents/skills/morya-ui-pages/references/feedback.md +68 -66
- package/template/.agents/skills/morya-ui-pages/references/optional-companions.md +107 -34
- package/template/.agents/skills/morya-ui-pages/references/page-layouts.md +141 -119
- package/template/.agents/skills/morya-ui-pages/references/review-checklist.md +64 -61
- package/template/.agents/skills/morya-ui-pages/references/style-presets.md +73 -0
- package/template/.agents/skills/morya-ui-pages/references/surfaces.md +91 -89
- package/template/.agents/skills/morya-ui-pages/references/visual-craft.md +221 -196
- package/template/.cursor/rules/coding-style.mdc +41 -41
- package/template/.cursor/rules/component-usage.mdc +41 -41
- package/template/.cursor/rules/design-system.mdc +17 -17
- package/template/.cursor/rules/page-layout.mdc +97 -78
- package/template/DESIGN.md +59 -59
- package/template/scripts/check-raw-colors.mjs +74 -74
- package/LICENSE +0 -21
package/README.md
CHANGED
|
@@ -1,103 +1,103 @@
|
|
|
1
|
-
# @morya-ui/setup
|
|
2
|
-
|
|
3
|
-
One-shot setup for consumer Vue projects using [`morya-ui`](https://www.npmjs.com/package/morya-ui).
|
|
4
|
-
|
|
5
|
-
Docs (zh/en):
|
|
6
|
-
|
|
7
|
-
- [One-shot setup](https://morya-space.github.io/morya-ui/docs/setup) — CLI commands and options
|
|
8
|
-
- [AI setup](https://morya-space.github.io/morya-ui/docs/ai-setup) — Agent workflow
|
|
9
|
-
- [Agent Skill](https://morya-space.github.io/morya-ui/docs/agent-skill) — `morya-ui-pages` behavior
|
|
10
|
-
- [Quick start](https://morya-space.github.io/morya-ui/docs/quick-start) — install and first component
|
|
11
|
-
|
|
12
|
-
Installs the UI library, copies first-party Agent skills / Cursor rules / design docs from `design-kit`, installs optional companion skills at **latest** via the [skills CLI](https://skills.sh/), merges Cursor MCP for [`@morya-ui/mcp`](https://www.npmjs.com/package/@morya-ui/mcp), and injects `import 'morya-ui/styles.css'`.
|
|
13
|
-
|
|
14
|
-
## Usage
|
|
15
|
-
|
|
16
|
-
In your app project root:
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
npx @morya-ui/setup
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
On a TTY, `full` / `ai` will prompt for optional Agent skills (required `morya-ui-pages` is always included).
|
|
23
|
-
|
|
24
|
-
Other common commands:
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
# AI config + MCP only (library already installed)
|
|
28
|
-
npx @morya-ui/setup ai
|
|
29
|
-
|
|
30
|
-
# Library + styles only
|
|
31
|
-
npx @morya-ui/setup app
|
|
32
|
-
|
|
33
|
-
# Non-interactive skill selection
|
|
34
|
-
npx @morya-ui/setup ai --yes
|
|
35
|
-
npx @morya-ui/setup ai --skills=morya-ui-pages,frontend-design,impeccable
|
|
36
|
-
npx @morya-ui/setup ai --skills=all
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
### Options
|
|
40
|
-
|
|
41
|
-
| Flag | Meaning |
|
|
42
|
-
| --- | --- |
|
|
43
|
-
| `--cwd <dir>` | Target project root (default: current directory) |
|
|
44
|
-
| `--pm pnpm\|yarn\|npm` | Package manager (default: detect from lockfile, else `pnpm`) |
|
|
45
|
-
| `--skills <list>` | Comma-separated skill ids, or `all` (skips the prompt) |
|
|
46
|
-
| `--yes` / `-y` | Use default skills without prompting |
|
|
47
|
-
| `--force` | Overwrite existing template files and the `morya-ui` MCP entry |
|
|
48
|
-
| `--dry-run` | Print actions without writing or installing |
|
|
49
|
-
| `--skip-install` | Do not install `morya-ui` |
|
|
50
|
-
| `--skip-template` | Do not copy AI skill / rules / docs (also skips companion skill install) |
|
|
51
|
-
| `--skip-mcp` | Do not write `.cursor/mcp.json` |
|
|
52
|
-
| `--skip-styles` | Do not inject `styles.css` |
|
|
53
|
-
| `--skip-scripts` | Do not add `check:colors` to `package.json` |
|
|
54
|
-
| `-h`, `--help` | Show help |
|
|
55
|
-
|
|
56
|
-
### Skills
|
|
57
|
-
|
|
58
|
-
| Id | Default | Install | Role |
|
|
59
|
-
| --- | --- | --- | --- |
|
|
60
|
-
| `morya-ui-pages` | required | template (from this package) | Page generation with `M*` + golden layouts |
|
|
61
|
-
| `frontend-design` | optional | skills CLI → `anthropics/skills` (latest) | Express / brand visual taste |
|
|
62
|
-
| `fixing-accessibility` | optional | skills CLI → `ibelick/ui-skills` (latest) | A11y audit and targeted fixes |
|
|
63
|
-
| `impeccable` | optional | skills CLI → `pbakaus/impeccable` (latest) | Named polish / audit / redesign passes |
|
|
64
|
-
|
|
65
|
-
Catalog: [`catalog/skills.json`](./catalog/skills.json).
|
|
66
|
-
|
|
67
|
-
### Conflict policy
|
|
68
|
-
|
|
69
|
-
- Template files and `.cursor/rules/*`: **skip** if the destination exists (unless `--force`).
|
|
70
|
-
- Companion skills (`skills-cli`): always reinstall/update to **latest** when selected.
|
|
71
|
-
- `.cursor/mcp.json`: merge other servers; skip existing `morya-ui` entry unless `--force`.
|
|
72
|
-
- `package.json` `check:colors`: add only if missing (unless `--force`).
|
|
73
|
-
- Styles: inject only when an entry file is found and the import is not already present.
|
|
74
|
-
|
|
75
|
-
### What gets copied / installed
|
|
76
|
-
|
|
77
|
-
From the package `template/` (synced from repo `design-kit/`):
|
|
78
|
-
|
|
79
|
-
- `DESIGN.md` — core design contract (principles, tokens, bans)
|
|
80
|
-
- `.agents/skills/morya-ui-pages/` — first-party page skill
|
|
81
|
-
- `.cursor/rules/`
|
|
82
|
-
- `scripts/check-raw-colors.mjs`
|
|
83
|
-
|
|
84
|
-
Via `npx skills add …` when optional companions are selected:
|
|
85
|
-
|
|
86
|
-
- `.agents/skills/frontend-design/`, `fixing-accessibility/`, and/or `impeccable/` (latest upstream)
|
|
87
|
-
|
|
88
|
-
### MCP (Cursor)
|
|
89
|
-
|
|
90
|
-
Writes / merges:
|
|
91
|
-
|
|
92
|
-
```json
|
|
93
|
-
{
|
|
94
|
-
"mcpServers": {
|
|
95
|
-
"morya-ui": {
|
|
96
|
-
"command": "npx",
|
|
97
|
-
"args": ["-y", "@morya-ui/mcp"]
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
Restart Cursor (or reload MCP) after install.
|
|
1
|
+
# @morya-ui/setup
|
|
2
|
+
|
|
3
|
+
One-shot setup for consumer Vue projects using [`morya-ui`](https://www.npmjs.com/package/morya-ui).
|
|
4
|
+
|
|
5
|
+
Docs (zh/en):
|
|
6
|
+
|
|
7
|
+
- [One-shot setup](https://morya-space.github.io/morya-ui/docs/setup) — CLI commands and options
|
|
8
|
+
- [AI setup](https://morya-space.github.io/morya-ui/docs/ai-setup) — Agent workflow
|
|
9
|
+
- [Agent Skill](https://morya-space.github.io/morya-ui/docs/agent-skill) — `morya-ui-pages` behavior
|
|
10
|
+
- [Quick start](https://morya-space.github.io/morya-ui/docs/quick-start) — install and first component
|
|
11
|
+
|
|
12
|
+
Installs the UI library, copies first-party Agent skills / Cursor rules / design docs from `design-kit`, installs optional companion skills at **latest** via the [skills CLI](https://skills.sh/), merges Cursor MCP for [`@morya-ui/mcp`](https://www.npmjs.com/package/@morya-ui/mcp), and injects `import 'morya-ui/styles.css'`.
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
In your app project root:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npx @morya-ui/setup
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
On a TTY, `full` / `ai` will prompt for optional Agent skills (required `morya-ui-pages` is always included).
|
|
23
|
+
|
|
24
|
+
Other common commands:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# AI config + MCP only (library already installed)
|
|
28
|
+
npx @morya-ui/setup ai
|
|
29
|
+
|
|
30
|
+
# Library + styles only
|
|
31
|
+
npx @morya-ui/setup app
|
|
32
|
+
|
|
33
|
+
# Non-interactive skill selection
|
|
34
|
+
npx @morya-ui/setup ai --yes
|
|
35
|
+
npx @morya-ui/setup ai --skills=morya-ui-pages,frontend-design,impeccable
|
|
36
|
+
npx @morya-ui/setup ai --skills=all
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Options
|
|
40
|
+
|
|
41
|
+
| Flag | Meaning |
|
|
42
|
+
| --- | --- |
|
|
43
|
+
| `--cwd <dir>` | Target project root (default: current directory) |
|
|
44
|
+
| `--pm pnpm\|yarn\|npm` | Package manager (default: detect from lockfile, else `pnpm`) |
|
|
45
|
+
| `--skills <list>` | Comma-separated skill ids, or `all` (skips the prompt) |
|
|
46
|
+
| `--yes` / `-y` | Use default skills without prompting |
|
|
47
|
+
| `--force` | Overwrite existing template files and the `morya-ui` MCP entry |
|
|
48
|
+
| `--dry-run` | Print actions without writing or installing |
|
|
49
|
+
| `--skip-install` | Do not install `morya-ui` |
|
|
50
|
+
| `--skip-template` | Do not copy AI skill / rules / docs (also skips companion skill install) |
|
|
51
|
+
| `--skip-mcp` | Do not write `.cursor/mcp.json` |
|
|
52
|
+
| `--skip-styles` | Do not inject `styles.css` |
|
|
53
|
+
| `--skip-scripts` | Do not add `check:colors` to `package.json` |
|
|
54
|
+
| `-h`, `--help` | Show help |
|
|
55
|
+
|
|
56
|
+
### Skills
|
|
57
|
+
|
|
58
|
+
| Id | Default | Install | Role |
|
|
59
|
+
| --- | --- | --- | --- |
|
|
60
|
+
| `morya-ui-pages` | required | template (from this package) | Page generation with `M*` + golden layouts |
|
|
61
|
+
| `frontend-design` | optional | skills CLI → `anthropics/skills` (latest) | Express / brand visual taste |
|
|
62
|
+
| `fixing-accessibility` | optional | skills CLI → `ibelick/ui-skills` (latest) | A11y audit and targeted fixes |
|
|
63
|
+
| `impeccable` | optional | skills CLI → `pbakaus/impeccable` (latest) | Named polish / audit / redesign passes |
|
|
64
|
+
|
|
65
|
+
Catalog: [`catalog/skills.json`](./catalog/skills.json).
|
|
66
|
+
|
|
67
|
+
### Conflict policy
|
|
68
|
+
|
|
69
|
+
- Template files and `.cursor/rules/*`: **skip** if the destination exists (unless `--force`).
|
|
70
|
+
- Companion skills (`skills-cli`): always reinstall/update to **latest** when selected.
|
|
71
|
+
- `.cursor/mcp.json`: merge other servers; skip existing `morya-ui` entry unless `--force`.
|
|
72
|
+
- `package.json` `check:colors`: add only if missing (unless `--force`).
|
|
73
|
+
- Styles: inject only when an entry file is found and the import is not already present.
|
|
74
|
+
|
|
75
|
+
### What gets copied / installed
|
|
76
|
+
|
|
77
|
+
From the package `template/` (synced from repo `design-kit/`):
|
|
78
|
+
|
|
79
|
+
- `DESIGN.md` — core design contract (principles, tokens, bans)
|
|
80
|
+
- `.agents/skills/morya-ui-pages/` — first-party page skill
|
|
81
|
+
- `.cursor/rules/`
|
|
82
|
+
- `scripts/check-raw-colors.mjs`
|
|
83
|
+
|
|
84
|
+
Via `npx skills add …` when optional companions are selected:
|
|
85
|
+
|
|
86
|
+
- `.agents/skills/frontend-design/`, `fixing-accessibility/`, and/or `impeccable/` (latest upstream)
|
|
87
|
+
|
|
88
|
+
### MCP (Cursor)
|
|
89
|
+
|
|
90
|
+
Writes / merges:
|
|
91
|
+
|
|
92
|
+
```json
|
|
93
|
+
{
|
|
94
|
+
"mcpServers": {
|
|
95
|
+
"morya-ui": {
|
|
96
|
+
"command": "npx",
|
|
97
|
+
"args": ["-y", "@morya-ui/mcp"]
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Restart Cursor (or reload MCP) after install.
|
package/bin/morya-ui-setup.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { parseArgs, printHelp, runSetup } from '../src/cli.mjs'
|
|
3
|
-
|
|
4
|
-
try {
|
|
5
|
-
const options = parseArgs(process.argv.slice(2))
|
|
6
|
-
if (options.help) {
|
|
7
|
-
printHelp()
|
|
8
|
-
process.exit(0)
|
|
9
|
-
}
|
|
10
|
-
await runSetup(options)
|
|
11
|
-
} catch (error) {
|
|
12
|
-
console.error(error instanceof Error ? error.message : error)
|
|
13
|
-
process.exit(1)
|
|
14
|
-
}
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { parseArgs, printHelp, runSetup } from '../src/cli.mjs'
|
|
3
|
+
|
|
4
|
+
try {
|
|
5
|
+
const options = parseArgs(process.argv.slice(2))
|
|
6
|
+
if (options.help) {
|
|
7
|
+
printHelp()
|
|
8
|
+
process.exit(0)
|
|
9
|
+
}
|
|
10
|
+
await runSetup(options)
|
|
11
|
+
} catch (error) {
|
|
12
|
+
console.error(error instanceof Error ? error.message : error)
|
|
13
|
+
process.exit(1)
|
|
14
|
+
}
|
package/catalog/skills.json
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
{
|
|
2
|
-
"skills": [
|
|
3
|
-
{
|
|
4
|
-
"id": "morya-ui-pages",
|
|
5
|
-
"name": "Morya UI Pages",
|
|
6
|
-
"description": "Build admin and product pages with M* components, golden layouts, and tokens.",
|
|
7
|
-
"required": true,
|
|
8
|
-
"default": true,
|
|
9
|
-
"install": "template",
|
|
10
|
-
"path": ".agents/skills/morya-ui-pages"
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"id": "frontend-design",
|
|
14
|
-
"name": "Frontend Design",
|
|
15
|
-
"description": "Distinctive visual direction for Express / brand surfaces (taste only; still remediate with M*).",
|
|
16
|
-
"required": false,
|
|
17
|
-
"default": false,
|
|
18
|
-
"install": "skills-cli",
|
|
19
|
-
"source": "anthropics/skills",
|
|
20
|
-
"skill": "frontend-design",
|
|
21
|
-
"path": ".agents/skills/frontend-design"
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
"id": "fixing-accessibility",
|
|
25
|
-
"name": "Fixing Accessibility",
|
|
26
|
-
"description": "Audit and fix names, keyboard, focus, forms, and WCAG basics.",
|
|
27
|
-
"required": false,
|
|
28
|
-
"default": false,
|
|
29
|
-
"install": "skills-cli",
|
|
30
|
-
"source": "ibelick/ui-skills",
|
|
31
|
-
"skill": "fixing-accessibility",
|
|
32
|
-
"path": ".agents/skills/fixing-accessibility"
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
"id": "impeccable",
|
|
36
|
-
"name": "Impeccable",
|
|
37
|
-
"description": "Named polish / audit /
|
|
38
|
-
"required": false,
|
|
39
|
-
"default": false,
|
|
40
|
-
"install": "skills-cli",
|
|
41
|
-
"source": "pbakaus/impeccable",
|
|
42
|
-
"skill": "impeccable",
|
|
43
|
-
"path": ".agents/skills/impeccable"
|
|
44
|
-
}
|
|
45
|
-
]
|
|
46
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"skills": [
|
|
3
|
+
{
|
|
4
|
+
"id": "morya-ui-pages",
|
|
5
|
+
"name": "Morya UI Pages",
|
|
6
|
+
"description": "Build admin and product pages with M* components, golden layouts, and tokens.",
|
|
7
|
+
"required": true,
|
|
8
|
+
"default": true,
|
|
9
|
+
"install": "template",
|
|
10
|
+
"path": ".agents/skills/morya-ui-pages"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"id": "frontend-design",
|
|
14
|
+
"name": "Frontend Design",
|
|
15
|
+
"description": "Distinctive visual direction for Express / brand surfaces; use after morya-ui-pages contract (taste only; still remediate with M*).",
|
|
16
|
+
"required": false,
|
|
17
|
+
"default": false,
|
|
18
|
+
"install": "skills-cli",
|
|
19
|
+
"source": "anthropics/skills",
|
|
20
|
+
"skill": "frontend-design",
|
|
21
|
+
"path": ".agents/skills/frontend-design"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "fixing-accessibility",
|
|
25
|
+
"name": "Fixing Accessibility",
|
|
26
|
+
"description": "Audit and fix names, keyboard, focus, forms, and WCAG basics.",
|
|
27
|
+
"required": false,
|
|
28
|
+
"default": false,
|
|
29
|
+
"install": "skills-cli",
|
|
30
|
+
"source": "ibelick/ui-skills",
|
|
31
|
+
"skill": "fixing-accessibility",
|
|
32
|
+
"path": ".agents/skills/fixing-accessibility"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"id": "impeccable",
|
|
36
|
+
"name": "Impeccable",
|
|
37
|
+
"description": "Named polish / audit / bolder / quieter passes; pair with morya-ui-pages Operate/Persuade modes (latest from pbakaus/impeccable).",
|
|
38
|
+
"required": false,
|
|
39
|
+
"default": false,
|
|
40
|
+
"install": "skills-cli",
|
|
41
|
+
"source": "pbakaus/impeccable",
|
|
42
|
+
"skill": "impeccable",
|
|
43
|
+
"path": ".agents/skills/impeccable"
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@morya-ui/setup",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.4",
|
|
5
|
+
"packageManager": "pnpm@10.12.4",
|
|
5
6
|
"description": "One-shot setup for morya-ui: install the library, Cursor MCP, Agent skills, and design config.",
|
|
6
7
|
"license": "MIT",
|
|
7
8
|
"homepage": "https://github.com/morya-space/morya-ui/tree/main/packages/setup#readme",
|
|
@@ -31,6 +32,7 @@
|
|
|
31
32
|
},
|
|
32
33
|
"scripts": {
|
|
33
34
|
"sync-template": "node ./scripts/sync-template.mjs",
|
|
34
|
-
"build": "pnpm run sync-template"
|
|
35
|
+
"build": "pnpm run sync-template",
|
|
36
|
+
"prepublishOnly": "pnpm run build"
|
|
35
37
|
}
|
|
36
|
-
}
|
|
38
|
+
}
|