@mr.dj2u/knowledge 0.1.6 → 0.1.8

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 (74) hide show
  1. package/dist/content/checklists/push-merge-loop.md +17 -17
  2. package/dist/content/checklists/unified-agent-bundle-validation.md +9 -9
  3. package/dist/content/examples/push-merge-loop.md +14 -14
  4. package/dist/content/examples/unified-agent-bundle-bootstrap.md +8 -8
  5. package/dist/content/guides/animation-performance.md +31 -1
  6. package/dist/content/guides/post-create-onboarding.md +140 -140
  7. package/dist/content/patterns/animation/animation-motion-selection.md +155 -0
  8. package/dist/content/patterns/api/api-routes.md +313 -313
  9. package/dist/content/patterns/api/error-handling.md +310 -310
  10. package/dist/content/patterns/database/drizzle-schema.md +279 -279
  11. package/dist/content/patterns/database/migrations.md +364 -364
  12. package/dist/content/patterns/database/query-organization.md +536 -536
  13. package/dist/content/patterns/database/relations.md +449 -449
  14. package/dist/content/patterns/deployment/build-configuration.md +440 -440
  15. package/dist/content/patterns/deployment/ci-cd-patterns.md +447 -447
  16. package/dist/content/patterns/deployment/environment-config.md +379 -379
  17. package/dist/content/patterns/deployment/hosting-setup.md +424 -424
  18. package/dist/content/patterns/project/configuration-patterns.md +459 -459
  19. package/dist/content/patterns/project/documentation-org.md +506 -506
  20. package/dist/content/patterns/project/folder-structure.md +397 -397
  21. package/dist/content/patterns/project/library-exports.md +464 -464
  22. package/dist/content/patterns/project/monorepo-structure.md +500 -500
  23. package/dist/content/patterns/routing/dynamic-routes.md +220 -220
  24. package/dist/content/patterns/routing/file-based-routing.md +185 -185
  25. package/dist/content/patterns/routing/route-groups.md +428 -428
  26. package/dist/content/patterns/state/persistence-middleware.md +520 -520
  27. package/dist/content/patterns/state/selector-hooks.md +537 -537
  28. package/dist/content/patterns/state/store-organization.md +538 -538
  29. package/dist/content/patterns/state/zustand-patterns.md +347 -347
  30. package/dist/content/patterns/styling/component-styling.md +467 -467
  31. package/dist/content/patterns/styling/responsive-patterns.md +397 -397
  32. package/dist/content/patterns/styling/theme-configuration.md +425 -425
  33. package/dist/content/patterns/styling/uniwind-setup.md +411 -411
  34. package/dist/content/prompts/continue-development.md +35 -35
  35. package/dist/content/prompts/fix-seo.md +29 -29
  36. package/dist/content/prompts/onboard-new-expo-app.md +11 -11
  37. package/dist/content/prompts/prepare-deploy.md +29 -29
  38. package/dist/content/prompts/project-research-plan.md +29 -29
  39. package/dist/content/prompts/push-merge-loop.md +25 -25
  40. package/dist/content/prompts/review-expo-project.md +29 -29
  41. package/dist/content/prompts/review-motion.md +58 -0
  42. package/dist/content/prompts/run-doctor.md +38 -38
  43. package/dist/content/prompts/wrap-up.md +67 -67
  44. package/dist/content/reference/create-expo-stack-uniwind.md +29 -29
  45. package/dist/content/reference/mcp-sdk-transport.md +30 -30
  46. package/dist/content/reference/reference-repo-evacuation.md +31 -31
  47. package/dist/content/resource-index.json +3 -0
  48. package/dist/content/skills/animation-motion.md +68 -0
  49. package/dist/content/skills/api-routes.md +33 -33
  50. package/dist/content/skills/continue-development.md +32 -32
  51. package/dist/content/skills/debugging.md +32 -32
  52. package/dist/content/skills/deployment.md +32 -32
  53. package/dist/content/skills/dev-server-management.md +32 -32
  54. package/dist/content/skills/env-vars.md +32 -32
  55. package/dist/content/skills/expo-router-architecture.md +33 -33
  56. package/dist/content/skills/expo-ssr-safety.md +32 -32
  57. package/dist/content/skills/plugin-creation.md +41 -41
  58. package/dist/content/skills/production-server-patterns.md +31 -31
  59. package/dist/content/skills/project-onboarding.md +31 -31
  60. package/dist/content/skills/research-plan-intake.md +32 -32
  61. package/dist/content/skills/seo-metadata.md +31 -31
  62. package/dist/content/skills/super-stack-startup.md +34 -34
  63. package/dist/content/skills/uniwind-theming.md +32 -32
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +27 -1
  66. package/dist/index.js.map +1 -1
  67. package/dist/patterns/index.d.ts +9 -1
  68. package/dist/patterns/index.d.ts.map +1 -1
  69. package/dist/patterns/index.js +17 -0
  70. package/dist/patterns/index.js.map +1 -1
  71. package/dist/prompts/index.d.ts.map +1 -1
  72. package/dist/prompts/index.js +17 -0
  73. package/dist/prompts/index.js.map +1 -1
  74. package/package.json +6 -1
@@ -1,17 +1,17 @@
1
- # Push-Merge Loop Checklist
2
-
3
- Use this checklist when running the PR loop into `test`.
4
-
5
- 1. Doctor CI pass: `mds doctor --ci`.
6
- 2. Stage intentional files only.
7
- 3. Create meaningful commit message.
8
- 4. Push branch.
9
- 5. Open/update PR to `test`.
10
- 6. Wait ~2 minutes before polling checks/comments.
11
- 7. Collect failed checks + review comments.
12
- 8. Fix issues locally.
13
- 9. Rerun Doctor CI.
14
- 10. Push and poll again.
15
- 11. Repeat up to 5 cycles.
16
- 12. Merge only when checks are green and blockers are cleared.
17
-
1
+ # Push-Merge Loop Checklist
2
+
3
+ Use this checklist when running the PR loop into `test`.
4
+
5
+ 1. Doctor CI pass: `mds doctor --ci`.
6
+ 2. Stage intentional files only.
7
+ 3. Create meaningful commit message.
8
+ 4. Push branch.
9
+ 5. Open/update PR to `test`.
10
+ 6. Wait ~2 minutes before polling checks/comments.
11
+ 7. Collect failed checks + review comments.
12
+ 8. Fix issues locally.
13
+ 9. Rerun Doctor CI.
14
+ 10. Push and poll again.
15
+ 11. Repeat up to 5 cycles.
16
+ 12. Merge only when checks are green and blockers are cleared.
17
+
@@ -1,9 +1,9 @@
1
- # Unified Agent Bundle Validation Checklist
2
-
3
- Phase 9 validation artifact intent:
4
-
5
- 1. Run Doctor (`--ci`) through the agent.
6
- 2. Fetch one guide via MCP resource (`animation-performance`).
7
- 3. Execute one CLI workflow (`mds continue` or `/push-merge-loop`).
8
- 4. Confirm tools/resources are visible in the target client.
9
-
1
+ # Unified Agent Bundle Validation Checklist
2
+
3
+ Phase 9 validation artifact intent:
4
+
5
+ 1. Run Doctor (`--ci`) through the agent.
6
+ 2. Fetch one guide via MCP resource (`animation-performance`).
7
+ 3. Execute one CLI workflow (`mds continue` or `/push-merge-loop`).
8
+ 4. Confirm tools/resources are visible in the target client.
9
+
@@ -1,14 +1,14 @@
1
- # Push-Merge Loop Example
2
-
3
- Example iteration log for `/push-merge-loop`:
4
-
5
- - Iteration 1:
6
- - Failed: `lint` and one requested review change.
7
- - Fixes: remove dead import, update API guard clause.
8
- - Result: `lint` green, one test still failing.
9
- - Iteration 2:
10
- - Failed: `test` in `packages/cli`.
11
- - Fixes: update stale skill ID expectation.
12
- - Result: all checks green.
13
- - Merge: PR merged into `test`.
14
-
1
+ # Push-Merge Loop Example
2
+
3
+ Example iteration log for `/push-merge-loop`:
4
+
5
+ - Iteration 1:
6
+ - Failed: `lint` and one requested review change.
7
+ - Fixes: remove dead import, update API guard clause.
8
+ - Result: `lint` green, one test still failing.
9
+ - Iteration 2:
10
+ - Failed: `test` in `packages/cli`.
11
+ - Fixes: update stale skill ID expectation.
12
+ - Result: all checks green.
13
+ - Merge: PR merged into `test`.
14
+
@@ -1,8 +1,8 @@
1
- # Unified Agent Bundle Bootstrap Example
2
-
3
- Phase 9 bootstrap artifact intent:
4
-
5
- 1. Install MCP server config.
6
- 2. Install generated skills/prompts package.
7
- 3. Verify the agent can call Doctor + knowledge tools.
8
- 4. Verify the agent can run one CLI workflow.
1
+ # Unified Agent Bundle Bootstrap Example
2
+
3
+ Phase 9 bootstrap artifact intent:
4
+
5
+ 1. Install MCP server config.
6
+ 2. Install generated skills/prompts package.
7
+ 3. Verify the agent can call Doctor + knowledge tools.
8
+ 4. Verify the agent can run one CLI workflow.
@@ -19,12 +19,42 @@ https://expo.dev/blog/the-real-cost-of-react-native-animations-benchmarking-ever
19
19
  complex UI-thread coordination.
20
20
  - Animated view count is a budget. A single animated card is different from 100
21
21
  animated rows.
22
+ - Treat parallax as its own motion class, not just "fancier Reanimated". Use it
23
+ when scroll depth supports a story: hero scenes, layered landing sections,
24
+ pinned product reveals, or depth cues that help orientation.
25
+ - Keep parallax light when possible. A few clearly separated layers usually read
26
+ better than many tiny offsets that all compete for attention.
27
+ - Scroll-linked scenes should simplify as they get denser:
28
+ - Native mobile hero/marketing sections can afford a handful of animated
29
+ layers when the screen is focused on that scene.
30
+ - Dense content screens and long lists should prefer simpler fades,
31
+ translations, or sticky section behavior over many interpolated layers.
32
+ - Web should degrade earlier than native when the effect depends on frequent
33
+ scroll interpolation across large sections.
34
+ - Large layered motion should have explicit budget notes nearby when it is
35
+ intentional: what is animating, why parallax is worth it, and how it should
36
+ simplify if performance drops.
37
+
38
+ ## Parallax Budget Rules
39
+
40
+ - Prefer roughly 3-5 meaningful animated depth layers per scene before adding
41
+ more complexity.
42
+ - Be cautious once a single file stacks many `interpolate()` calls, multiple
43
+ `useAnimatedStyle()` blocks, or repeated scroll-linked rows.
44
+ - Do not combine heavy parallax, repeated list item motion, and broad layout
45
+ transitions in the same screen unless you have measured the release build and
46
+ confirmed it holds up.
47
+ - If web shares the same component tree, provide a simpler fallback when the
48
+ full depth effect is not essential to comprehension.
22
49
 
23
50
  ## Doctor And Onboarding Rules
24
51
 
25
52
  - Warn when route or list files animate many repeated items without an explicit
26
53
  performance note.
54
+ - Warn when parallax or scroll-linked scenes pile on many interpolation layers
55
+ without a nearby motion/performance note.
27
56
  - Warn when benchmark claims are based only on debug builds.
28
57
  - Ask during onboarding whether the app has long-running, list-heavy, or
29
58
  gesture-heavy animation requirements.
30
-
59
+ - Ask whether hero sections or landing pages need parallax, pinned scenes, or
60
+ layered depth effects so the implementation path is chosen intentionally.
@@ -1,49 +1,49 @@
1
- # Post-Create Expo Onboarding
2
-
3
- MDS onboarding runs after `rn-new`, `create-expo-app`, `create-expo-stack`, or
4
- another generator has created an Expo project. `create-expo-super-stack` wraps
5
- that same idea by running `create-expo-stack` first and then applying the MDS
6
- onboarding pass.
7
-
8
- ## Flow
9
-
10
- 1. Detect package manager, Expo SDK, Expo Router, app directory, aliases, and
11
- styling stack.
12
- 2. Explain project memory first, then ask what the app is for, who it serves,
13
- primary flows, data needs, and release/deployment intent.
14
- 3. Use friendly Clack prompts with visible defaults, helpful explanations, and
15
- no blank required answers.
16
- 4. Derive defaults from selected answers instead of asking for comma-separated
17
- internal keywords.
18
- 5. Offer rich boilerplate by default: project memory docs, exposition pages,
19
- Uniwind repair for existing apps, Software Mansion core examples, Supabase or
20
- local data guidance, MCP/Codex/Claude instructions, and CI/release safeguards.
21
- 6. Scaffold only selected pieces.
22
- 7. Add generated cleanup scripts such as `clear-expo-start` and `free-port`.
23
- 8. Install added dependencies, run `expo install --fix`, install known missing
24
- Expo peers such as `expo-font` for `@expo/vector-icons`, then run Doctor.
25
-
26
- ## Agentic Onboarding (MCP)
27
-
28
- The terminal `mds onboard` command writes the project memory files. The
29
- agentic version is a conversation with Copilot, Claude Code, Codex, or Cursor that
30
- fills those files in collaboratively.
31
-
32
- Install **once, globally** (user scope, default) so every workspace gets
33
- the prompts:
34
-
35
- ```bash
36
- mds mcp install --client claude # merges into ~/.claude.json
37
- mds mcp install --client codex # merges into ~/.codex/config.toml
38
- mds mcp install --client cursor # merges into ~/.cursor/mcp.json
39
- mds mcp install --dry-run # preview merge before writing
40
- ```
41
-
42
- Restart the host (or run `claude mcp reload`) and the MDS prompts are
43
- available from any workspace.
44
-
45
- Two prompts and several callable MDS MCP tools ship with the server:
46
-
1
+ # Post-Create Expo Onboarding
2
+
3
+ MDS onboarding runs after `rn-new`, `create-expo-app`, `create-expo-stack`, or
4
+ another generator has created an Expo project. `create-expo-super-stack` wraps
5
+ that same idea by running `create-expo-stack` first and then applying the MDS
6
+ onboarding pass.
7
+
8
+ ## Flow
9
+
10
+ 1. Detect package manager, Expo SDK, Expo Router, app directory, aliases, and
11
+ styling stack.
12
+ 2. Explain project memory first, then ask what the app is for, who it serves,
13
+ primary flows, data needs, and release/deployment intent.
14
+ 3. Use friendly Clack prompts with visible defaults, helpful explanations, and
15
+ no blank required answers.
16
+ 4. Derive defaults from selected answers instead of asking for comma-separated
17
+ internal keywords.
18
+ 5. Offer rich boilerplate by default: project memory docs, exposition pages,
19
+ Uniwind repair for existing apps, Software Mansion core examples, Supabase or
20
+ local data guidance, MCP/Codex/Claude instructions, and CI/release safeguards.
21
+ 6. Scaffold only selected pieces.
22
+ 7. Add generated cleanup scripts such as `clear-expo-start` and `free-port`.
23
+ 8. Install added dependencies, run `expo install --fix`, install known missing
24
+ Expo peers such as `expo-font` for `@expo/vector-icons`, then run Doctor.
25
+
26
+ ## Agentic Onboarding (MCP)
27
+
28
+ The terminal `mds onboard` command writes the project memory files. The
29
+ agentic version is a conversation with Copilot, Claude Code, Codex, or Cursor that
30
+ fills those files in collaboratively.
31
+
32
+ Install **once, globally** (user scope, default) so every workspace gets
33
+ the prompts:
34
+
35
+ ```bash
36
+ mds mcp install --client claude # merges into ~/.claude.json
37
+ mds mcp install --client codex # merges into ~/.codex/config.toml
38
+ mds mcp install --client cursor # merges into ~/.cursor/mcp.json
39
+ mds mcp install --dry-run # preview merge before writing
40
+ ```
41
+
42
+ Restart the host (or run `claude mcp reload`) and the MDS prompts are
43
+ available from any workspace.
44
+
45
+ Two prompts and several callable MDS MCP tools ship with the server:
46
+
47
47
  - `create_expo_super_stack` — invoke from a **parent folder** (e.g.
48
48
  `F:\ReactNativeApps`) when the app folder does not exist yet. This is
49
49
  now a thin orchestration prompt: `mds_runtime_versions` checks for
@@ -52,27 +52,27 @@ Two prompts and several callable MDS MCP tools ship with the server:
52
52
  `create_expo_super_stack_intake_step` is only the manual fallback for
53
53
  missing or ambiguous answers, and generation happens through
54
54
  `create_expo_super_stack_generate`.
55
- - `onboard_new_expo_app` — invoke from **inside an existing Expo app
56
- folder** (a freshly generated one or a year-old project). Runs the
57
- intake → normalize → plan → scaffold flow.
58
-
59
- After generation, the user-dev should open the generated app folder
60
- directly in a new agent session and run `mds continue`. That fresh
61
- app-root session reduces token usage and saves money because future
62
- searches, reads, and plans are scoped to the app instead of the parent
63
- folder and old generator conversation.
64
-
65
- Both prompts enforce or surface a **TodoForContext blocker** before
66
- implementation work: they scan every `project/` file for the literal
67
- marker `# TodoForContext(optional):` and ask the user to fill it in or
68
- delete the marker line.
69
-
70
- `mds doctor` mirrors this rule with a `todo-for-context markers`
71
- error so the same blocker stops CI and editor surfaces until the user
72
- fills the section or deletes the marker line.
73
-
74
- ### What's new in the agentic prompts and tools
75
-
55
+ - `onboard_new_expo_app` — invoke from **inside an existing Expo app
56
+ folder** (a freshly generated one or a year-old project). Runs the
57
+ intake → normalize → plan → scaffold flow.
58
+
59
+ After generation, the user-dev should open the generated app folder
60
+ directly in a new agent session and run `mds continue`. That fresh
61
+ app-root session reduces token usage and saves money because future
62
+ searches, reads, and plans are scoped to the app instead of the parent
63
+ folder and old generator conversation.
64
+
65
+ Both prompts enforce or surface a **TodoForContext blocker** before
66
+ implementation work: they scan every `project/` file for the literal
67
+ marker `# TodoForContext(optional):` and ask the user to fill it in or
68
+ delete the marker line.
69
+
70
+ `mds doctor` mirrors this rule with a `todo-for-context markers`
71
+ error so the same blocker stops CI and editor surfaces until the user
72
+ fills the section or deletes the marker line.
73
+
74
+ ### What's new in the agentic prompts and tools
75
+
76
76
  - **PHASE 0 file intake.** The agent offers to digest an existing
77
77
  `project/info.md` and `project/style.md` if the user has them already.
78
78
  Questions whose answers are unambiguous in the file are skipped; the
@@ -84,80 +84,80 @@ fills the section or deletes the marker line.
84
84
  merges explicit overrides, returns missing or ambiguous fields, and
85
85
  produces a ready-to-pass generate payload so the user is not forced
86
86
  through redundant question-by-question discovery.
87
- - **Android TV alongside Apple TV.** The platform multi-select now
88
- includes Android TV. Android TV builds from the same Android target
89
- with leanback config in `app.json`; Apple TV is a separate tvOS build
90
- target via `react-native-tvos`. Selecting either records the intent
91
- in project memory.
92
- - **Shared CLI-backed intake contract.** The agentic CESS flow now uses
93
- callable MCP tools backed by the shared `@mr.dj2u/cli` intake
94
- contract. That keeps the questionnaire, defaults, dependency rules,
95
- and flag mapping aligned with the published CLI behavior.
96
- - **No silent defaults.** Guided intake must explicitly collect answers
97
- or explicitly present visible defaults. If the CESS intake tools are
98
- unavailable, the agent should stop and tell the user to refresh the
99
- plugin or MCP install instead of inventing `--mds-yes` defaults.
87
+ - **Android TV alongside Apple TV.** The platform multi-select now
88
+ includes Android TV. Android TV builds from the same Android target
89
+ with leanback config in `app.json`; Apple TV is a separate tvOS build
90
+ target via `react-native-tvos`. Selecting either records the intent
91
+ in project memory.
92
+ - **Shared CLI-backed intake contract.** The agentic CESS flow now uses
93
+ callable MCP tools backed by the shared `@mr.dj2u/cli` intake
94
+ contract. That keeps the questionnaire, defaults, dependency rules,
95
+ and flag mapping aligned with the published CLI behavior.
96
+ - **No silent defaults.** Guided intake must explicitly collect answers
97
+ or explicitly present visible defaults. If the CESS intake tools are
98
+ unavailable, the agent should stop and tell the user to refresh the
99
+ plugin or MCP install instead of inventing `--mds-yes` defaults.
100
100
  - **Runtime version diagnostics.** `mds_runtime_versions` reports the
101
101
  active MCP server version, CLI version, concrete installed
102
102
  `create-expo-super-stack` version, and the published generation path
103
103
  in use.
104
- - **Credits while waiting.** When generation kicks off, the agent
105
- prints a recognition note for the upstream teams and individuals
106
- whose work fills the MDS knowledge base.
107
- - **Success message surfaced.** After a successful run, the agent
108
- quotes the generator's `MDS onboarding complete` tail block back
109
- verbatim so the Mr. DJ personal thank-you text appears in chat the same way
110
- it does in a terminal CLI run.
111
- - **MDS Continue handoff.** The agent runs `mds continue` from the
112
- generated app folder, then tells the user-dev to open that app folder
113
- in a fresh agent session to lower token usage and cost.
114
-
115
- ## Defaults
116
-
117
- - Prefer Uniwind and Tailwind v4 for new projects.
118
- - Keep route files thin and move business logic into features, services, hooks,
119
- and utilities.
120
- - Always add `project/info.md`, `project/todo.md`, `project/style.md`, and
121
- `project/guidelines.md` when project memory is selected.
122
- - Normalize existing `project/info.md` and `project/style.md` into canonical
123
- sections while preserving unknown content under Imported Notes.
124
- - Add `project/intake-agent.md` when context is thin or imported notes need a
125
- follow-up agent conversation.
126
- - Keep `project/style.md` visual-only; put technical and agent rules in
127
- `project/guidelines.md`.
128
- - Treat monorepo-aware scaffolding as a future step after the single-app MVP is
129
- stable.
130
-
131
- ## VS Code & GitHub Copilot Integration
132
-
133
- This guide is authored as canonical knowledge consumed by agent bundles; it is not the agent itself. To enable the generated Copilot/VS Code surface and the custom MDS agent in a workspace, regenerate the VS Code bundle and install the generated prompts/settings into the target repository or your user profile.
134
-
135
- - Regenerate VS Code assets (from repository root):
136
-
137
- ```powershell
138
- pnpm --filter @mr.dj2u/knowledge build:vscode
139
- ```
140
-
141
- - Copy the generated workspace assets into your project (PowerShell):
142
-
143
- ```powershell
144
- Copy-Item -Path .\plugins\vscode-copilot\.github\* -Destination . -Recurse -Force
145
- Copy-Item -Path .\plugins\vscode-copilot\.vscode\* -Destination .\.vscode -Recurse -Force
146
- ```
147
-
148
- - Then restart VS Code. Ensure the `GitHub Copilot Chat` extension is installed and enabled. The generated `.vscode/settings.json` enables agent skill locations and prompt file lookup under `.github/prompts`.
149
-
150
- - If you prefer user-scope installs, copy the `user/.copilot` content into your user profile per the extension docs, or run `mds agent install --client codex --scope user` (if available) to automate the merge.
151
-
152
- ## Install Path & What This MD Is For
153
-
154
- - This markdown is a human- and agent-facing guide. It documents the onboarding flow and explains what the agent prompts do. It is used as input to the `packages/knowledge` build which generates plugin/agent bundles for Codex, Claude Code, and VS Code Copilot.
155
- - The agent itself is not this file — it is a runtime that loads generated prompts/skills from the plugin bundles or the MCP server. To activate the agent surfaces you must either:
156
- - Install the MCP prompts via `mds mcp install --client <client>` (user or project scope), or
157
- - Copy the generated plugin files from `plugins/vscode-copilot` / `plugins/codex` / `plugins/claude-code` into the target workspace or user profile and restart the corresponding client.
158
- - If a host keeps using stale prompt or plugin behavior after republish,
159
- refresh the local plugin cache, reinstall the MDS MCP server, and run
160
- `mds_runtime_versions` from the host surface to confirm which version
161
- is actually active.
162
-
163
- If you want, I can: regenerate the VS Code bundle now, copy the assets into the current workspace, and verify Copilot sees the prompts. Say "Do it" and I'll run the build and copy steps for you.
104
+ - **Credits while waiting.** When generation kicks off, the agent
105
+ prints a recognition note for the upstream teams and individuals
106
+ whose work fills the MDS knowledge base.
107
+ - **Success message surfaced.** After a successful run, the agent
108
+ quotes the generator's `MDS onboarding complete` tail block back
109
+ verbatim so the Mr. DJ personal thank-you text appears in chat the same way
110
+ it does in a terminal CLI run.
111
+ - **MDS Continue handoff.** The agent runs `mds continue` from the
112
+ generated app folder, then tells the user-dev to open that app folder
113
+ in a fresh agent session to lower token usage and cost.
114
+
115
+ ## Defaults
116
+
117
+ - Prefer Uniwind and Tailwind v4 for new projects.
118
+ - Keep route files thin and move business logic into features, services, hooks,
119
+ and utilities.
120
+ - Always add `project/info.md`, `project/todo.md`, `project/style.md`, and
121
+ `project/guidelines.md` when project memory is selected.
122
+ - Normalize existing `project/info.md` and `project/style.md` into canonical
123
+ sections while preserving unknown content under Imported Notes.
124
+ - Add `project/intake-agent.md` when context is thin or imported notes need a
125
+ follow-up agent conversation.
126
+ - Keep `project/style.md` visual-only; put technical and agent rules in
127
+ `project/guidelines.md`.
128
+ - Treat monorepo-aware scaffolding as a future step after the single-app MVP is
129
+ stable.
130
+
131
+ ## VS Code & GitHub Copilot Integration
132
+
133
+ This guide is authored as canonical knowledge consumed by agent bundles; it is not the agent itself. To enable the generated Copilot/VS Code surface and the custom MDS agent in a workspace, regenerate the VS Code bundle and install the generated prompts/settings into the target repository or your user profile.
134
+
135
+ - Regenerate VS Code assets (from repository root):
136
+
137
+ ```powershell
138
+ pnpm --filter @mr.dj2u/knowledge build:vscode
139
+ ```
140
+
141
+ - Copy the generated workspace assets into your project (PowerShell):
142
+
143
+ ```powershell
144
+ Copy-Item -Path .\plugins\vscode-copilot\.github\* -Destination . -Recurse -Force
145
+ Copy-Item -Path .\plugins\vscode-copilot\.vscode\* -Destination .\.vscode -Recurse -Force
146
+ ```
147
+
148
+ - Then restart VS Code. Ensure the `GitHub Copilot Chat` extension is installed and enabled. The generated `.vscode/settings.json` enables agent skill locations and prompt file lookup under `.github/prompts`.
149
+
150
+ - If you prefer user-scope installs, copy the `user/.copilot` content into your user profile per the extension docs, or run `mds agent install --client codex --scope user` (if available) to automate the merge.
151
+
152
+ ## Install Path & What This MD Is For
153
+
154
+ - This markdown is a human- and agent-facing guide. It documents the onboarding flow and explains what the agent prompts do. It is used as input to the `packages/knowledge` build which generates plugin/agent bundles for Codex, Claude Code, and VS Code Copilot.
155
+ - The agent itself is not this file — it is a runtime that loads generated prompts/skills from the plugin bundles or the MCP server. To activate the agent surfaces you must either:
156
+ - Install the MCP prompts via `mds mcp install --client <client>` (user or project scope), or
157
+ - Copy the generated plugin files from `plugins/vscode-copilot` / `plugins/codex` / `plugins/claude-code` into the target workspace or user profile and restart the corresponding client.
158
+ - If a host keeps using stale prompt or plugin behavior after republish,
159
+ refresh the local plugin cache, reinstall the MDS MCP server, and run
160
+ `mds_runtime_versions` from the host surface to confirm which version
161
+ is actually active.
162
+
163
+ If you want, I can: regenerate the VS Code bundle now, copy the assets into the current workspace, and verify Copilot sees the prompts. Say "Do it" and I'll run the build and copy steps for you.
@@ -0,0 +1,155 @@
1
+ # Motion Implementation Selection
2
+
3
+ ## Description
4
+
5
+ Animation work should start with intent, not library preference. This pattern
6
+ helps choose between simple platform transitions, Reanimated, Lottie, and
7
+ parallax or scroll-linked motion based on what the interface is trying to
8
+ communicate and how much performance budget the screen can afford.
9
+
10
+ It is seeded from layered landing-page motion in `time2pay` plus the
11
+ multi-layer scroll examples from the Quantum Jam project, where depth is used
12
+ intentionally instead of sprinkling animation across unrelated UI.
13
+
14
+ ## When to Use
15
+
16
+ **Use this pattern** when:
17
+
18
+ - The user says an animation feels janky or unsatisfying.
19
+ - A screen mixes several animation styles and needs a cleaner implementation
20
+ choice.
21
+ - You are deciding whether something should be a fade, a layout transition, a
22
+ Reanimated interaction, a Lottie asset, or a parallax scene.
23
+ - A landing page or hero section wants layered depth, pinned scenes, or
24
+ scroll-linked reveals.
25
+
26
+ ## Motion Selection Matrix
27
+
28
+ ### One-shot transition
29
+
30
+ Use for:
31
+ - Small enter/exit fades
32
+ - Simple banners, cards, and modals
33
+ - Brief route-adjacent transitions with low component count
34
+
35
+ Prefer:
36
+ - Platform or native transitions
37
+ - Lightweight Reanimated enter/exit helpers only when already in use nearby
38
+
39
+ Avoid:
40
+ - Rebuilding the whole screen around shared values just to fade a few elements
41
+
42
+ ### Layout transition
43
+
44
+ Use for:
45
+ - Expanding sections
46
+ - Reordering compact content
47
+ - Small layout shifts that should feel connected
48
+
49
+ Prefer:
50
+ - Reanimated layout transitions when layout coupling is the main problem
51
+
52
+ Avoid:
53
+ - Running the same heavy layout animation on long repeated lists
54
+
55
+ ### Gesture-driven motion
56
+
57
+ Use for:
58
+ - Drag, swipe, sheet, or scroll-coupled controls
59
+ - Motion that depends on continuous user input
60
+
61
+ Prefer:
62
+ - Reanimated on the UI thread
63
+
64
+ Avoid:
65
+ - JS-thread animation paths for tight gesture loops
66
+
67
+ ### List-heavy motion
68
+
69
+ Use for:
70
+ - Large repeated rows
71
+ - Feed item enter/exit motion
72
+ - Repeated cards inside FlatList, FlashList, or mapped collections
73
+
74
+ Prefer:
75
+ - Simple, consistent motion with a clear budget
76
+ - Native or lightweight paths when the same animation repeats many times
77
+
78
+ Avoid:
79
+ - Many simultaneous animated rows with custom interpolation logic unless
80
+ measured and justified
81
+
82
+ ### Loading animation
83
+
84
+ Use for:
85
+ - Branded loops
86
+ - Focused status moments
87
+ - Empty/loading scenes that benefit from illustration
88
+
89
+ Prefer:
90
+ - Lottie for self-contained loops
91
+ - Small skeleton or opacity transitions for utilitarian loading states
92
+
93
+ Avoid:
94
+ - Large always-running animations across dense work screens
95
+
96
+ ### Parallax or scroll-linked motion
97
+
98
+ Use for:
99
+ - Hero motion on landing pages
100
+ - Layered background depth
101
+ - Pinned scenes and product storytelling
102
+ - Scroll-linked reveals where depth helps orientation or emphasis
103
+
104
+ Prefer:
105
+ - Reanimated with a small number of meaningful layers
106
+ - Scene-level helpers that isolate interpolation logic
107
+ - Simpler web fallbacks when the full effect is not essential
108
+
109
+ Avoid:
110
+ - Turning every section into its own parallax rig
111
+ - Dense route files packed with many interpolations and animated rows
112
+
113
+ ## Parallax Section
114
+
115
+ ### Layered background motion
116
+
117
+ - Use a few strong layers with different depth speeds.
118
+ - Make sure each layer has a visual reason to exist.
119
+ - Keep decorative motion behind core content rather than fighting it.
120
+
121
+ ### Pinned scenes
122
+
123
+ - Use when a section needs a short storytelling beat during scroll.
124
+ - Keep the pinned duration purposeful; long pinned scenes become work for the
125
+ user if the content payoff is weak.
126
+
127
+ ### Staggered depth
128
+
129
+ - Let foreground, midground, and background move at clearly different rates.
130
+ - Favor readable separation over tiny offsets across many elements.
131
+
132
+ ### Budget rules
133
+
134
+ - Prefer roughly 3-5 layers in a scene before adding more.
135
+ - Be cautious when a single file accumulates many `interpolate()` calls or
136
+ several `useAnimatedStyle()` blocks.
137
+ - Simplify sooner on web and on dense native screens than on a dedicated mobile
138
+ hero section.
139
+ - Add a nearby motion/performance note when a heavy scene is intentional.
140
+
141
+ ## Verification Checklist
142
+
143
+ - Classify each animation before changing its implementation.
144
+ - Verify the release build, not just debug mode.
145
+ - Check web fallback behavior if the scene is shared cross-platform.
146
+ - Confirm repeated rows are not doing the same expensive motion hundreds of
147
+ times.
148
+ - Confirm parallax scenes still feel readable when motion is reduced or
149
+ simplified.
150
+
151
+ ## Related Guidance
152
+
153
+ - `mds://guides/animation-performance`
154
+ - `mds://skills/animation-motion`
155
+ - `mds://skills/debugging`