dme-agent 7.4.2 → 9.69.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.
@@ -1,14 +1,136 @@
1
1
  ---
2
2
  name: dme-shadcn
3
3
  description: >
4
- Force shadcn/ui-first implementation. Stop reinventing Button/Input/Dialog.
5
- Triggers: /dme-shadcn, shadcn, add component, ui primitive.
4
+ DME 9.69 shadcn-first composition skill. Install and compose primitives;
5
+ never reinvent Button/Input/Dialog/Table/Sidebar. Triggers: /dme-shadcn,
6
+ shadcn, compose UI, install components, don't reinvent primitives, ui atoms.
6
7
  ---
7
8
 
8
- # DME shadcn First
9
+ # DME shadcn 9.69 — Compose, Don't Invent
9
10
 
10
- Map UI `npx shadcn@latest add …` CSS variables compose domain blocks.
11
+ Law: **if shadcn has it, you use it.** You are a composer, not a component factory.
11
12
 
12
- Never hand-roll atoms that exist. Customize via tokens, className, cva, asChild.
13
+ ## When this skill owns the room
13
14
 
14
- Card is allowed as primitive; DME still forbids text-bloat inside cards.
15
+ - Scaffolding any product UI, dashboard, landing form, dialog flow, table, sidebar
16
+ - He says “use shadcn”, “don’t hand-roll”, “install components”
17
+ - You feel the urge to write a custom Button or Modal from scratch → stop
18
+
19
+ ## Install discipline
20
+
21
+ ```bash
22
+ npx shadcn@latest add button input label textarea select checkbox radio-group
23
+ npx shadcn@latest add dialog sheet drawer popover dropdown-menu
24
+ npx shadcn@latest add table tabs badge separator skeleton sonner tooltip
25
+ npx shadcn@latest add card form accordion progress pagination
26
+ npx shadcn@latest add sidebar command scroll-area avatar switch
27
+ ```
28
+
29
+ Add only what the surface needs. Prefer one `add` batch over drive-by custom CSS atoms.
30
+
31
+ ## Primitive map (default to these)
32
+
33
+ | Need | Use |
34
+ |------|-----|
35
+ | Actions | `Button` variants: default, secondary, outline, ghost, destructive |
36
+ | Text | `Input` + `Label` · `Textarea` · `InputOTP` if needed |
37
+ | Choice | `Select` · `Checkbox` · `RadioGroup` · `Switch` |
38
+ | Overlay | `Dialog` (decision) · `Sheet` (detail/side) · `Drawer` (mobile) · `Popover` |
39
+ | Menus | `DropdownMenu` · `ContextMenu` · `Command` (palette) |
40
+ | Data | `Table` + `Pagination` · never fake tables with div grids for tabular data |
41
+ | Chrome | `Sidebar` · `Tabs` · `Breadcrumb` · `Separator` · `ScrollArea` |
42
+ | Feedback | `Sonner` toasts · `Progress` · `Skeleton` · `Badge` · `Alert` |
43
+ | Structure | `Card` only when entity/KPI/plan/media — not for every paragraph |
44
+ | Forms | `Form` (RHF + zod) when validation matters |
45
+
46
+ ## Compose patterns
47
+
48
+ ### Work surface (dashboard)
49
+
50
+ ```
51
+ SidebarProvider
52
+ Sidebar
53
+ SidebarInset
54
+ header: search | filters | Button(CTA)
55
+ metric strip: plain numbers (not Card essays)
56
+ Table | list (divide-y)
57
+ Sheet | Dialog for detail/create
58
+ ```
59
+
60
+ ### Decision modal
61
+
62
+ ```
63
+ Dialog
64
+ DialogHeader (title + 1 line description)
65
+ body ≤ 2–3 lines + fields
66
+ DialogFooter: outline cancel + primary verb
67
+ ```
68
+
69
+ ### Detail without route change
70
+
71
+ ```
72
+ Sheet side="right"
73
+ identity header
74
+ dl / Table / Tabs
75
+ sticky footer actions
76
+ ```
77
+
78
+ ### Empty
79
+
80
+ ```
81
+ short title
82
+ one helper line
83
+ one Button CTA
84
+ ```
85
+
86
+ No illustration spam unless brand requires it.
87
+
88
+ ## Styling rules (peace / 9.69)
89
+
90
+ - Extend via `className` + CVA variants — don’t fork the primitive file unless token-level
91
+ - Radius ≤ 8px; keep shadcn radius tokens consistent with zinc peace palette
92
+ - Prefer `variant` and `size` over one-off colored divs
93
+ - Dark: bg `#09090b`, raise `#18181b`; Light: white/zinc-50 peace
94
+ - Accent sparingly on primary Button / key Badge — not every border
95
+
96
+ ## Anti-patterns (instant fail)
97
+
98
+ | Fail | Fix |
99
+ |------|-----|
100
+ | Custom `<button className="...">` for primary actions | `Button` |
101
+ | Hand-rolled modal with fixed overlay | `Dialog` / `Sheet` |
102
+ | Div soup “table” | `Table` |
103
+ | Card wrapping every sentence | list / `Separator` / bare layout |
104
+ | Rebuilding toast system | `Sonner` |
105
+ | Custom sidebar from scratch | `Sidebar` primitives |
106
+ | Icon+title+paragraph feature grid as “design system” | not a system — delete |
107
+
108
+ ## Accessibility (ships with shadcn — keep it)
109
+
110
+ - Don’t strip `Dialog` focus trap or `Label` association
111
+ - Icon-only `Button` → `aria-label` or `sr-only` text
112
+ - Touch targets ≥ 44px on mobile (size default / padding)
113
+ - Focus rings visible — never `outline-none` without replacement
114
+
115
+ ## Motion pairing
116
+
117
+ Primitives stay dumb; motion wraps them:
118
+
119
+ ```tsx
120
+ <motion.div {...fadeUp}>
121
+ <Card>...</Card>
122
+ </motion.div>
123
+ ```
124
+
125
+ Don’t animate in a way that breaks Dialog/Sheet exit. See `/dme-motion`.
126
+
127
+ ## Checklist
128
+
129
+ - [ ] Listed needed primitives before coding
130
+ - [ ] Installed via shadcn CLI (or confirmed present)
131
+ - [ ] Zero hand-rolled atoms that exist upstream
132
+ - [ ] Cards lean; tables for tabular data
133
+ - [ ] Forms labeled; errors human
134
+ - [ ] Composed shell matches platform (web vs app)
135
+
136
+ **Compose. Don’t invent.**
@@ -1,53 +1,136 @@
1
1
  ---
2
2
  name: dme-ux
3
3
  description: >
4
- Human-centered UX doctrine for non-developers. Microcopy, flows, forms,
5
- onboarding, errors, accessibility. Triggers: /dme-ux, UX, usabilidade,
6
- microcopy, onboarding, empty state, formulário.
4
+ DME 9.69 human UX for non-developers: addiction via ease not dark patterns,
5
+ microcopy caps, clear verbs, complete states. Triggers: /dme-ux, UX writing,
6
+ microcopy, empty state, onboarding UX, usability, human UI, dark patterns.
7
7
  ---
8
8
 
9
- # DME UX — Humans First
9
+ # DME UX 9.69 Ease, Not Traps
10
10
 
11
- ## Default user
11
+ Audience default: **humans who don’t code**. They scan. They fear mistakes. Next step must be obvious.
12
12
 
13
- Not a developer. Scans. Fears mistakes. Wants the next step obvious.
13
+ ## Goal
14
14
 
15
- ## Laws
15
+ Make the product **habit-forming through ease**: fast success, clear recovery, low shame.
16
+ **Never** through dark patterns (forced continuity, hidden costs, fake urgency, trick checkboxes).
16
17
 
17
- 1. Recognition over recall
18
- 2. Immediate feedback (&lt;150ms state)
19
- 3. Prevent errors; confirm destructive
20
- 4. Easy exit / undo
21
- 5. Progressive disclosure
22
- 6. Consistent patterns
23
- 7. A11y: contrast, focus, 44px targets, labeled inputs
24
- 8. Button = real verb
25
- 9. Full states: empty · loading · partial · success · error · offline
26
- 10. First-minute magic: one valuable action
18
+ ## Core loop (ethical stickiness)
27
19
 
28
- ## Microcopy caps
20
+ 1. **One obvious primary action** per view
21
+ 2. **Time-to-first-success** as short as honest
22
+ 3. **Forgiving errors** — say what happened + how to continue
23
+ 4. **Memory** — remember filters, last place, drafts
24
+ 5. **Feedback** — every action gets a visible result (toast, row update, progress)
25
+
26
+ If they return, it’s because work was easier — not because leave was hard.
27
+
28
+ ## Microcopy caps (hard)
29
29
 
30
30
  | Element | Max |
31
- |---|---|
31
+ |---------|-----|
32
32
  | Field label | 3 words |
33
33
  | Helper | 1 line |
34
34
  | Card body | 1–2 lines |
35
35
  | Toast | 1 line |
36
- | Empty | title + 1 line + CTA |
36
+ | Modal body | 2–3 lines |
37
37
  | Hero lead | 1 sentence |
38
+ | Empty title | 3–6 words |
39
+ | Error | 1–2 lines + action |
40
+
41
+ ### Buttons = verbs
42
+
43
+ `Salvar` · `Criar pedido` · `Enviar` · `Aprovar` · `Tentar de novo`
44
+
45
+ Not: `OK` · `Submit` · `Click here` · `Explore`
46
+
47
+ ### Errors
48
+
49
+ ```
50
+ Não deu para salvar.
51
+ Verifique a conexão e tente de novo.
52
+ [ Tentar de novo ]
53
+ ```
54
+
55
+ Never stack traces, never blame, never “unexpected error” alone.
56
+
57
+ ## States (every surface)
58
+
59
+ | State | Content |
60
+ |-------|---------|
61
+ | Empty | title + one line + one CTA |
62
+ | Loading | skeleton geometry of result |
63
+ | Success | toast or inline confirm, 1 line |
64
+ | Error | cause + recovery |
65
+ | Offline | honest status + safe actions only |
66
+
67
+ ## Progressive disclosure
38
68
 
39
- ## Translate errors
69
+ - Defaults cover 80%
70
+ - “Mais opções” / advanced filters collapsed
71
+ - Dangerous stuff: Dialog confirm with consequence in plain language
40
72
 
41
- Dev message human cause + next action. Never dump stack traces.
73
+ ## Onboarding (UX lens)
74
+
75
+ Value → account → **one** essential setup → first success.
76
+
77
+ No 12-tooltip product tours. For motion/craft detail → `/dme-welcome`.
42
78
 
43
79
  ## Forms
44
80
 
45
- One column · external labels · inline errors · primary at end · autosave if long.
81
+ - Labels outside fields (visible)
82
+ - Placeholders are examples, not labels
83
+ - Inline validation after blur or submit — not while first keystroke
84
+ - Password managers / autocomplete respected
85
+ - Required: mark few; don’t asterisk everything
86
+
87
+ ## Navigation & wayfinding
88
+
89
+ - Current location always clear
90
+ - Destructive far from primary when possible
91
+ - Back restores context (scroll, filters)
92
+
93
+ ## Addiction via ease (allowed)
94
+
95
+ - Keyboard shortcuts for power users (discoverable)
96
+ - Optimistic UI when safe
97
+ - Smart defaults
98
+ - Undo instead of scary confirms when reversible
99
+ - Fast search (`Command`)
100
+
101
+ ## Dark patterns (banned)
102
+
103
+ | Pattern | Why banned |
104
+ |---------|------------|
105
+ | Confirmshaming (“No, I hate saving time”) | contempt |
106
+ | Hidden unsubscribe / cancel | trap |
107
+ | Fake countdown scarcity | lie |
108
+ | Prechecked marketing consent | coercion |
109
+ | Infinite guilt badges | anxiety ≠ retention |
110
+ | Roach motel (easy in, hard out) | hostility |
111
+
112
+ ## Language
113
+
114
+ - Human language; no API field names in UI (`order_id` → `Nº do pedido`)
115
+ - Locale-aware dates/numbers when product requires
116
+ - Banned AI fluff: seamless, next-gen, powerful, unlock, supercharge, elevate, journey, empower…
117
+
118
+ ## a11y floor
46
119
 
47
- ## Onboarding
120
+ - Contrast AA
121
+ - Focus visible
122
+ - ≥44px targets mobile
123
+ - Labels on inputs
124
+ - Don’t rely on color alone for status
48
125
 
49
- Value → account → one essential setup → first success. No 12-tooltip tours.
126
+ ## Checklist
50
127
 
51
- ## Output when reviewing UX
128
+ - [ ] Primary action obvious
129
+ - [ ] Copy under caps
130
+ - [ ] Verbs on buttons
131
+ - [ ] Empty/error/success real
132
+ - [ ] No dark patterns
133
+ - [ ] Non-dev language
134
+ - [ ] First success path short
52
135
 
53
- Friction list · copy rewrites · state gaps · mobile issues · priority fixes.
136
+ **Be easy to love. Never hard to leave for the wrong reasons.**
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: dme-welcome
3
+ description: >
4
+ DME 9.69 onboarding / first-run welcome. Value then one setup then first win.
5
+ Triggers: /dme-welcome, onboarding, first-run, empty state setup, welcome flow.
6
+ ---
7
+
8
+ # DME Welcome 9.69
9
+
10
+ 1. Flow: **value → account → one essential setup → first success**
11
+ 2. ≤3 visible steps · thin progress · skip always available
12
+ 3. Motion: functional step crossfade 180–200ms
13
+ 4. Icons: onboarding strategy (1–3 glyphs) — never 12-tooltip tours
14
+ 5. After: empty state = short title + one line + one CTA
15
+ 6. Copy caps: step title short · body ≤2 lines · buttons = real verbs
16
+ 7. shadcn: Dialog/Sheet or full page · Progress · Button · Input
17
+
18
+ Banned: guided product tours with tooltip chains, feature-card spam on step 1.
19
+
20
+ Deliver: step list → copy → motion → implement → subtract.
package/bin/dme.mjs CHANGED
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * DME Agent CLI — navigable TUI · detect-only install · strong AGENTS.md
3
+ * DME Agent CLI 9.69 — navigable TUI · detect-only install · strong AGENTS.md
4
4
  */
5
5
 
6
6
  import fs from "node:fs";
7
7
  import path from "node:path";
8
8
  import { fileURLToPath } from "node:url";
9
9
  import { asciiLogo, c, fail, info, hr, showCursor } from "../src/ui.mjs";
10
- import { installDme, doctor, uninstall, scan } from "../src/install.mjs";
10
+ import { installDme, doctor, uninstall, scan, SKILL_NAMES } from "../src/install.mjs";
11
11
  import { getTargets } from "../src/targets.mjs";
12
12
  import { formatScanReport, getDetectedTargets } from "../src/detect.mjs";
13
13
  import { runMainTui, printScanTable } from "../src/tui.mjs";
@@ -27,7 +27,7 @@ function parseFlags(argv) {
27
27
  noProject: false,
28
28
  force: false,
29
29
  all: false,
30
- agentsPolicy: "ask", // ask | merge | overwrite | skip
30
+ agentsPolicy: "ask",
31
31
  noTui: false,
32
32
  yes: false,
33
33
  };
@@ -39,13 +39,11 @@ function parseFlags(argv) {
39
39
  else if (a === "--all") {
40
40
  flags.all = true;
41
41
  flags.targets = ["all"];
42
- }
43
- else if (a === "--no-tui" || a === "--plain") flags.noTui = true;
42
+ } else if (a === "--no-tui" || a === "--plain") flags.noTui = true;
44
43
  else if (a === "-y" || a === "--yes") {
45
44
  flags.yes = true;
46
45
  flags.agentsPolicy = "merge";
47
- }
48
- else if (a === "--agents" || a === "--agents-policy") {
46
+ } else if (a === "--agents" || a === "--agents-policy") {
49
47
  flags.agentsPolicy = (argv[++i] || "ask").toLowerCase();
50
48
  } else if (a.startsWith("--agents=")) {
51
49
  flags.agentsPolicy = a.slice(9).toLowerCase();
@@ -64,17 +62,22 @@ function parseFlags(argv) {
64
62
  }
65
63
 
66
64
  function help() {
67
- console.log(asciiLogo(pkg.version));
68
- console.log(`${c.bold}${c.brightCyan}Usage${c.reset}
65
+ const ver = pkg.version || "9.69.0";
66
+ console.log(asciiLogo("9.69"));
67
+ console.log(`${c.bold}${c.brightCyan}DME Agent ${ver}${c.reset}
68
+ ${c.dim}Ask palette · motion bible · web vs app · icons · welcome · TUI detect-only${c.reset}
69
+
70
+ ${c.bold}${c.brightCyan}Usage${c.reset}
69
71
  ${c.brightYellow}dme${c.reset} interactive TUI
70
72
  ${c.brightYellow}dme${c.reset} <command> [options]
71
73
 
72
74
  ${c.bold}${c.brightCyan}Commands${c.reset}
73
75
  ${c.brightYellow}install${c.reset} Detect CLIs on this PC → install DME only there
74
- ${c.brightYellow}scan${c.reset} Show which CLIs are detected
76
+ ${c.brightYellow}scan${c.reset} Show which CLIs are detected (detect-only)
75
77
  ${c.brightYellow}doctor${c.reset} Verify DME install health
76
78
  ${c.brightYellow}uninstall${c.reset} Remove DME (detected CLIs only)
77
79
  ${c.brightYellow}list${c.reset} List all supported targets
80
+ ${c.brightYellow}skills${c.reset} List installer skill pack
78
81
  ${c.brightYellow}tui${c.reset} Open navigable menu
79
82
  ${c.brightYellow}path${c.reset} Print assets path
80
83
  ${c.brightYellow}version${c.reset} Print version
@@ -89,8 +92,11 @@ ${c.bold}${c.brightCyan}Options${c.reset}
89
92
  ${c.dim}--no-project${c.reset} Skip cwd project files
90
93
  ${c.dim}--no-tui${c.reset} Disable interactive pickers
91
94
 
95
+ ${c.bold}${c.brightCyan}9.69 skills${c.reset}
96
+ ${c.dim}${SKILL_NAMES.map((s) => "/" + s).join(" ")}${c.reset}
97
+
92
98
  ${c.bold}${c.brightCyan}Examples${c.reset}
93
- ${c.dim}npx dme-agent${c.reset}
99
+ ${c.dim}npx dme-agent@9.69.0${c.reset}
94
100
  ${c.dim}dme install${c.reset}
95
101
  ${c.dim}dme install --targets claude,cursor${c.reset}
96
102
  ${c.dim}dme install --agents merge -y${c.reset}
@@ -98,6 +104,8 @@ ${c.bold}${c.brightCyan}Examples${c.reset}
98
104
 
99
105
  ${c.bold}${c.brightCyan}AGENTS.md${c.reset}
100
106
  Written to each CLI’s ${c.underline}correct path${c.reset}.
107
+ Prefer assets: AGENTS.md · DME-Agent-v9.69-SYSTEM.md · dme-v9.69.md
108
+ (falls back to v7.4 names if 9.69 assets not yet present).
101
109
  If the file already exists → TUI asks: Merge / Overwrite / Skip.
102
110
  `);
103
111
  }
@@ -123,7 +131,6 @@ async function doInstall(flags) {
123
131
  }
124
132
 
125
133
  async function main() {
126
- // ensure cursor restored on crash
127
134
  process.on("exit", () => showCursor());
128
135
  process.on("SIGINT", () => {
129
136
  showCursor();
@@ -132,7 +139,6 @@ async function main() {
132
139
 
133
140
  const flags = parseFlags(cmd ? args.slice(1) : args);
134
141
 
135
- // No command → TUI if tty, else help + scan hint
136
142
  if (!cmd) {
137
143
  if (process.stdin.isTTY && process.stdout.isTTY && !flags.noTui) {
138
144
  await runMainTui({
@@ -180,6 +186,17 @@ async function main() {
180
186
  uninstall({ all: flags.all });
181
187
  break;
182
188
 
189
+ case "skills":
190
+ console.log(asciiLogo("9.69"));
191
+ console.log(hr());
192
+ for (const s of SKILL_NAMES) {
193
+ console.log(` ${c.brightYellow}/${s}${c.reset}`);
194
+ }
195
+ console.log("");
196
+ console.log(info(`${SKILL_NAMES.length} skills in installer pack`));
197
+ console.log("");
198
+ break;
199
+
183
200
  case "tui":
184
201
  case "menu":
185
202
  case "ui":
@@ -194,7 +211,7 @@ async function main() {
194
211
 
195
212
  case "list":
196
213
  case "targets":
197
- console.log(asciiLogo(pkg.version));
214
+ console.log(asciiLogo("9.69"));
198
215
  console.log(hr());
199
216
  for (const t of getTargets()) {
200
217
  console.log(
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dme-agent",
3
- "version": "7.4.2",
4
- "description": "DME Agent 7.4.2 — Neominimal Identity Engine. Detect-only bootstrap + navigable TUI for Claude, Codex, Cursor, Zed, Grok and more.",
3
+ "version": "9.69.0",
4
+ "description": "DME Agent 9.69 — Neominimal Identity Engine. Detect-only bootstrap + TUI. Ask palette · motion bible · web vs app · icons · welcome.",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "dme": "bin/dme.mjs",
@@ -35,7 +35,11 @@
35
35
  "dashboard",
36
36
  "landing-page",
37
37
  "bootstrap",
38
- "tui"
38
+ "tui",
39
+ "motion",
40
+ "icons",
41
+ "electron",
42
+ "tauri"
39
43
  ],
40
44
  "author": "AnThophicous / brennoleondesouza",
41
45
  "license": "MIT",