dme-agent 7.4.2 → 9.69.1

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,142 @@
1
1
  ---
2
2
  name: dme-research
3
3
  description: >
4
- Design research references (dashboards, landings, figma keywords, DNA).
5
- Triggers: /dme-research, design references, visual research, figma dashboard.
4
+ DME 9.69 design research: competitive UI patterns, references, MCP-aware
5
+ gathering, peace/platform fit. Triggers: /dme-research, design research,
6
+ UI references, competitive audit, pattern research, inspire design, benchmarks.
6
7
  ---
7
8
 
8
- # DME Research
9
+ # DME Research 9.69 — Look Before You Paint
9
10
 
10
- If MCP `design-research` exists: design_search, design_images, design_dna, design_compare.
11
+ Research feeds decisions; it does not replace taste. Output must be **actionable for build**, not a moodboard essay.
11
12
 
12
- Else: use web search for references, extract DNA (density, type, color, structure), map to shadcn.
13
+ ## When to run
13
14
 
14
- Never pixel-copy. Output anchor + ≤6 DNA bullets + component list, then implement.
15
+ - New product surface / rebrand
16
+ - He asks for references, competitors, “how does X do it”
17
+ - Before large dashboard/landing/app-shell bets
18
+ - Critique needs benchmarks
19
+
20
+ ## Intake
21
+
22
+ 1. **Question** — what decision will this research unlock?
23
+ 2. **Platform** — web · app · both
24
+ 3. **Category** — ops dashboard · marketing · desktop utility · onboarding…
25
+ 4. **Constraints** — peace gray, shadcn, short copy, brand palette if any
26
+
27
+ ## Sources (MCP-aware)
28
+
29
+ Use tools available in environment — do not fake visits:
30
+
31
+ | Need | Prefer |
32
+ |------|--------|
33
+ | Live pages | browser / web fetch / open page MCP |
34
+ | Social/UI chatter | X search if relevant |
35
+ | General landscape | web search |
36
+ | Repo patterns | codebase grep / read |
37
+ | Design systems | official docs (shadcn, Radix, platform HIG) |
38
+
39
+ **Cite real URLs** when reporting. If a tool fails, say so and continue with what you have.
40
+
41
+ ### Target reference classes
42
+
43
+ - **Vercel dens** — dashboard density, marketing restraint
44
+ - **Apple editorial** — HIG spacing, marketing typography
45
+ - **Fumadocs / Linear / Notion-ish calm** — nav + content peace
46
+ - **Category leaders** — 2–4 direct competitors max
47
+
48
+ ## Protocol
49
+
50
+ ### 1. Frame
51
+
52
+ ```
53
+ Decision:
54
+ Success looks like:
55
+ Out of scope:
56
+ ```
57
+
58
+ ### 2. Gather (timebox)
59
+
60
+ - 3–7 references max (depth > 20 tabs)
61
+ - For each: capture **structure**, not aesthetics only
62
+
63
+ ### 3. Extract pattern cards
64
+
65
+ Per reference:
66
+
67
+ ```
68
+ Name / URL
69
+ Platform
70
+ Protagonist of first viewport
71
+ Shell structure
72
+ Density (sparse | medium | dense)
73
+ Motion (none | calm | rich)
74
+ Icon policy
75
+ Card usage
76
+ What to steal
77
+ What to refuse
78
+ ```
79
+
80
+ ### 4. Synthesize for DME 9.69
81
+
82
+ Map findings onto doctrine:
83
+
84
+ | Doctrine | Research ask |
85
+ |----------|----------------|
86
+ | Peace gray | Do they use neutral calm or carnival? |
87
+ | Platform motion | Web calm vs app rich evidence |
88
+ | shadcn-shaped | Could this be composed with shadcn? |
89
+ | Short copy | Word counts on hero/KPI |
90
+ | Cards | Lean entity vs feature spam |
91
+ | Icons | Smart vs spam |
92
+
93
+ ### 5. Recommendation
94
+
95
+ ```
96
+ Anchor: vercel-dens | apple-editorial | fumadocs
97
+ Shell:
98
+ Palette direction:
99
+ Motion density:
100
+ Icon density:
101
+ Do:
102
+ Don't:
103
+ Open questions for him:
104
+ ```
105
+
106
+ ## Output format (always)
107
+
108
+ 1. **Decision frame** (3 lines)
109
+ 2. **Reference table** (name · steal · refuse)
110
+ 3. **Pattern verdict** (one protagonist structure)
111
+ 4. **Build implications** (shadcn list, motion, icons)
112
+ 5. **Risks** (a11y, density, scope creep)
113
+
114
+ Keep it scannable. No “in today’s competitive landscape” fluff.
115
+
116
+ ## Anti-patterns
117
+
118
+ - 2000-word essays with no build implication
119
+ - Copying competitor purple-glow AI look
120
+ - Research as procrastination (timebox)
121
+ - Inventing quotes/screenshots not seen
122
+
123
+ ## Hand-off
124
+
125
+ | Next | Skill |
126
+ |------|-------|
127
+ | Implement product UI | `/dme-design` |
128
+ | Dashboard | `/dme-dashboard` |
129
+ | Landing | `/dme-landing` |
130
+ | Desktop | `/dme-app-shell` |
131
+ | Score after | `/dme-critique` |
132
+
133
+ ## Checklist
134
+
135
+ - [ ] Decision named
136
+ - [ ] Real sources / MCP used when available
137
+ - [ ] ≤7 references, deep
138
+ - [ ] Steal/refuse explicit
139
+ - [ ] Mapped to 9.69 peace + platform
140
+ - [ ] Build implications concrete
141
+
142
+ **Research ends when the next commit is obvious.**
@@ -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,87 @@
1
+ ---
2
+ name: dme-welcome
3
+ description: >
4
+ DME 9.69 welcome and onboarding as craft. Peace aesthetic, Framer Motion beats,
5
+ short human copy, platform-aware (desktop rich / web calm). Triggers: /dme-welcome,
6
+ onboarding, first-run, welcome screen, empty setup, splash, intro sequence.
7
+ ---
8
+
9
+ # DME Welcome 9.69 — Craft sequence
10
+
11
+ Welcome is a **first-run craft piece**, not a fake “hello!” every login.
12
+
13
+ ## When to build
14
+
15
+ | Yes | No |
16
+ |---|---|
17
+ | First open of desktop app | Every dashboard visit |
18
+ | Empty workspace needs first object | 12-tooltip product tour |
19
+ | Account just created | Marketing inside logged-in shell |
20
+
21
+ ## Flow (addiction via ease)
22
+
23
+ ```
24
+ value (why you're here)
25
+ → account / identity if needed
26
+ → ONE essential setup
27
+ → first success action
28
+ → stillness + product
29
+ ```
30
+
31
+ - ≤ **3** visible steps
32
+ - Progress thin and quiet
33
+ - **Skip** always available
34
+ - Buttons = real verbs (`Criar primeiro projeto`, not `Continuar jornada`)
35
+
36
+ ## Platform density
37
+
38
+ | Platform | Motion |
39
+ |---|---|
40
+ | **Web** | Crossfade / opacity + y 8–12px · 180–280ms easeOut · max one stagger group |
41
+ | **Electron/Tauri** | 2–4 beat choreography OK · spring gentle · layoutId mark→title optional |
42
+ | **Reduced motion** | Instant or ≤80ms fade; no travel |
43
+
44
+ ### Desktop beat recipe (example)
45
+
46
+ 1. **0ms** mark/logo opacity + scale 0.98→1 spring soft
47
+ 2. **120ms** title y 12→0 easeOut
48
+ 3. **200ms** one-line lead
49
+ 4. **280ms** primary CTA
50
+ 5. **Stillness** — no loop
51
+
52
+ ## Visual (peace)
53
+
54
+ - Default: **peace gray** (zinc/stone) unless brand locked
55
+ - Soft contrast; breathing whitespace
56
+ - **One** protagonist: mark **or** title **or** product preview
57
+ - Icons: onboarding strategy · **1–3 glyphs** for whole flow
58
+ - No feature-card grid on step 1
59
+
60
+ ## Copy caps
61
+
62
+ | Element | Max |
63
+ |---|---|
64
+ | Step title | 4–6 words |
65
+ | Body | 1–2 lines |
66
+ | Helper | 1 line |
67
+ | CTA | verb + object |
68
+
69
+ Banned: seamless, next-gen, unlock, empower, “your journey”, wall of text.
70
+
71
+ ## Stack
72
+
73
+ - **shadcn:** Button, Progress, Input, Dialog/Sheet or full-page route
74
+ - **framer-motion:** AnimatePresence for steps
75
+ - **lucide:** optional single step glyph
76
+
77
+ ## Empty state after welcome
78
+
79
+ Short title + one line + **one** CTA. One quiet icon max. No “Welcome to your dashboard!” hero forever.
80
+
81
+ ## Deliver
82
+
83
+ 1. Step list + copy
84
+ 2. Platform density + easing
85
+ 3. Framer beat map
86
+ 4. Implement
87
+ 5. Subtract — if beat 4 doesn’t teach, cut it
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.1",
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",