@mr.dj2u/cli 0.1.9 → 0.1.11
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/bundles/claude-code/.claude-plugin/plugin.json +2 -2
- package/bundles/claude-code/.mcp.json +1 -1
- package/bundles/claude-code/agents/mds.md +3 -2
- package/bundles/claude-code/commands/create-expo-super-stack.md +15 -14
- package/bundles/claude-code/skills/create-expo-super-stack/SKILL.md +16 -15
- package/bundles/codex/.codex-plugin/plugin.json +3 -3
- package/bundles/codex/.mcp.json +1 -1
- package/bundles/codex/README.md +4 -1
- package/bundles/codex/commands/create-expo-super-stack.md +15 -14
- package/bundles/codex/skills/workflow-continue-development/SKILL.md +4 -3
- package/bundles/codex/skills/workflow-create-expo-super-stack/SKILL.md +19 -17
- package/bundles/codex/skills/workflow-fix-seo/SKILL.md +4 -3
- package/bundles/codex/skills/workflow-prepare-deploy/SKILL.md +4 -3
- package/bundles/codex/skills/workflow-project-research-plan/SKILL.md +4 -3
- package/bundles/codex/skills/workflow-push-merge-loop/SKILL.md +4 -3
- package/bundles/codex/skills/workflow-review-expo-project/SKILL.md +4 -3
- package/bundles/codex/skills/workflow-run-doctor/SKILL.md +4 -3
- package/bundles/codex/skills/workflow-wrap-up/SKILL.md +4 -3
- package/bundles/vscode-copilot/.github/agents/mds.agent.md +1 -1
- package/bundles/vscode-copilot/.github/copilot-instructions.md +1 -1
- package/bundles/vscode-copilot/.github/prompts/continue-development.prompt.md +1 -1
- package/bundles/vscode-copilot/.github/prompts/create-expo-super-stack.prompt.md +16 -15
- package/bundles/vscode-copilot/.github/prompts/fix-seo.prompt.md +1 -1
- package/bundles/vscode-copilot/.github/prompts/prepare-deploy.prompt.md +1 -1
- package/bundles/vscode-copilot/.github/prompts/project-research-plan.prompt.md +1 -1
- package/bundles/vscode-copilot/.github/prompts/push-merge-loop.prompt.md +1 -1
- package/bundles/vscode-copilot/.github/prompts/review-expo-project.prompt.md +1 -1
- package/bundles/vscode-copilot/.github/prompts/run-doctor.prompt.md +1 -1
- package/bundles/vscode-copilot/.github/prompts/wrap-up.prompt.md +1 -1
- package/bundles/vscode-copilot/.vscode/mcp.json +1 -1
- package/bundles/vscode-copilot/user/.copilot/agents/mds.agent.md +1 -1
- package/bundles/vscode-copilot/user/.copilot/instructions.md +1 -1
- package/bundles/vscode-copilot/user/.copilot/skills/workflow-create-expo-super-stack/SKILL.md +15 -14
- package/dist/cess-intake.d.ts +107 -0
- package/dist/cess-intake.d.ts.map +1 -0
- package/dist/cess-intake.js +917 -0
- package/dist/cess-intake.js.map +1 -0
- package/dist/cli.js +0 -0
- package/dist/commands/mcp-install.d.ts +2 -2
- package/dist/commands/mcp-install.js +1 -1
- package/dist/commands/onboard.d.ts +9 -0
- package/dist/commands/onboard.d.ts.map +1 -1
- package/dist/commands/onboard.js +5 -5
- package/dist/commands/onboard.js.map +1 -1
- package/dist/project-memory.d.ts.map +1 -1
- package/dist/project-memory.js +18 -14
- package/dist/project-memory.js.map +1 -1
- package/dist/stylist-theme.js +2 -2
- package/dist/stylist-theme.js.map +1 -1
- package/package.json +69 -66
|
@@ -5,7 +5,7 @@ description: "MDS Expo project intelligence agent for Doctor, onboarding, deploy
|
|
|
5
5
|
|
|
6
6
|
# MDS Agent
|
|
7
7
|
|
|
8
|
-
You are the Mr. DJ's Dev Suite agent for Expo projects.
|
|
8
|
+
You are the Mr. DJ's Dev Suite agent for Expo projects. Treat callable MDS MCP tools as the runtime behavior surface and prompt markdown as guidance only.
|
|
9
9
|
|
|
10
10
|
## Tool Routing
|
|
11
11
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Mr. DJ's Dev Suite Copilot Instructions
|
|
3
3
|
|
|
4
4
|
- Treat `project/` as the source of truth for product intent, roadmap, style, and technical rules.
|
|
5
|
-
- Prefer MDS MCP tools before broad edits: `doctor_scan_project`, `doctor_scan_file`, `generate_refactor_plan`, and `generate_deploy_checklist`.
|
|
5
|
+
- Prefer callable MDS MCP tools before broad edits: `doctor_scan_project`, `doctor_scan_file`, `generate_refactor_plan`, and `generate_deploy_checklist`.
|
|
6
6
|
- Use `list_skills`, `get_skill`, and `get_guide` for MDS guidance, while delegating framework mechanics to official Expo/React Native guidance when available.
|
|
7
7
|
- Keep route files thin, env secrets server-only, and release work gated by Doctor checks.
|
|
8
8
|
<!-- END MDS COPILOT INSTRUCTIONS -->
|
package/bundles/vscode-copilot/user/.copilot/skills/workflow-create-expo-super-stack/SKILL.md
CHANGED
|
@@ -5,31 +5,32 @@ description: "Run the MDS Create Expo Super Stack workflow in VS Code Copilot us
|
|
|
5
5
|
|
|
6
6
|
# /create-expo-super-stack
|
|
7
7
|
|
|
8
|
-
Create a new Expo app with the MDS Super Stack flow, using
|
|
8
|
+
Create a new Expo app with the MDS Super Stack flow, using the published CESS CLI as the execution source of truth and callable MDS MCP tools as the guided intake surface.
|
|
9
9
|
|
|
10
10
|
## Arguments
|
|
11
11
|
|
|
12
12
|
- `parentDir`: folder where the new app directory should be created.
|
|
13
13
|
- `appName`: app folder name.
|
|
14
14
|
|
|
15
|
-
## MCP
|
|
15
|
+
## Required MDS MCP Tool Flow
|
|
16
16
|
|
|
17
17
|
1. Confirm the `mds` MCP server is available.
|
|
18
|
-
2.
|
|
19
|
-
3.
|
|
20
|
-
4.
|
|
21
|
-
5.
|
|
18
|
+
2. Drive intake with `create_expo_super_stack_intake_step`.
|
|
19
|
+
3. Ask exactly one question per turn.
|
|
20
|
+
4. Always show the returned default and options.
|
|
21
|
+
5. Never invent or silently accept defaults on the user's behalf.
|
|
22
|
+
6. When the intake tool returns `confirm`, summarize the returned `summaryLines` and ask the user to confirm.
|
|
23
|
+
7. After explicit confirmation, set `answers.confirmed=true`, call the intake tool again, and proceed only when it returns `ready`.
|
|
24
|
+
8. Then call `create_expo_super_stack_generate` with `confirmed: true`.
|
|
22
25
|
|
|
23
|
-
##
|
|
26
|
+
## Failure Behavior
|
|
24
27
|
|
|
25
|
-
1. If
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
3. Then onboard/continue from inside the generated app using the current CLI behavior:
|
|
30
|
-
- `mds continue <new-app-path>`
|
|
28
|
+
1. If the guided intake or generate tools are unavailable, stop.
|
|
29
|
+
2. Call `mds_runtime_versions` to diagnose stale plugin or MCP installs.
|
|
30
|
+
3. Tell the user to refresh or reinstall the MDS plugin/MCP server.
|
|
31
|
+
4. Do not fall back to `--mds-yes` or direct CLI shortcuts unless the user explicitly asked for a fast non-interactive run.
|
|
31
32
|
|
|
32
33
|
## Verification And Output
|
|
33
34
|
|
|
34
35
|
- Confirm generated app has `project/info.md`, `project/todo.md`, `project/style.md`, and `project/guidelines.md`.
|
|
35
|
-
- Output: generated app path, onboarding status, and
|
|
36
|
+
- Output: generated app path, onboarding status, and the handoff to open a fresh agent session inside the new app folder and run `mds continue`.
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import type { OnboardArgv } from './commands/onboard.js';
|
|
2
|
+
import type { ExpoServerAdapter, OnboardAnswers } from './project-memory.js';
|
|
3
|
+
export type CessScriptLanguage = 'typescript' | 'javascript';
|
|
4
|
+
export type CessPackageManager = 'npm' | 'pnpm' | 'yarn' | 'bun';
|
|
5
|
+
export type CessNavigationLibrary = 'expo-router' | 'react-navigation';
|
|
6
|
+
export type CessReactNavigationLayout = 'stack' | 'tabs' | 'drawer';
|
|
7
|
+
export type CessStylingSystem = 'uniwind' | 'nativewind' | 'tamagui' | 'restyle' | 'stylesheet';
|
|
8
|
+
export type CessStateManagement = 'zustand' | 'none';
|
|
9
|
+
export type CessAuthBackend = 'none' | 'supabase' | 'firebase';
|
|
10
|
+
export type CessIntakeStatus = 'question' | 'confirm' | 'ready' | 'blocked';
|
|
11
|
+
export interface CessIntakeAnswers {
|
|
12
|
+
confirmed?: boolean;
|
|
13
|
+
scriptLanguage?: CessScriptLanguage;
|
|
14
|
+
packageManager?: CessPackageManager;
|
|
15
|
+
navigationLibrary?: CessNavigationLibrary;
|
|
16
|
+
reactNavigationLayout?: CessReactNavigationLayout;
|
|
17
|
+
stylingSystem?: CessStylingSystem;
|
|
18
|
+
stateManagement?: CessStateManagement;
|
|
19
|
+
authBackend?: CessAuthBackend;
|
|
20
|
+
easSetup?: boolean;
|
|
21
|
+
displayAppName?: string;
|
|
22
|
+
audience?: string;
|
|
23
|
+
coreFlows?: string;
|
|
24
|
+
screens?: string;
|
|
25
|
+
dataNeedSelections?: string[];
|
|
26
|
+
dataNeedsOther?: string;
|
|
27
|
+
targetPlatforms?: string[];
|
|
28
|
+
firstTargetPlatform?: string;
|
|
29
|
+
platformStrategy?: OnboardAnswers['platformFileStrategy'];
|
|
30
|
+
appDirectory?: OnboardAnswers['appDirectory'];
|
|
31
|
+
platformLayouts?: OnboardAnswers['platformLayoutMode'];
|
|
32
|
+
webOutput?: OnboardAnswers['webOutput'];
|
|
33
|
+
expoServerAdapter?: ExpoServerAdapter;
|
|
34
|
+
customBackend?: boolean;
|
|
35
|
+
customBackendEntry?: string;
|
|
36
|
+
deploymentTarget?: string;
|
|
37
|
+
includeCreateExpoComponents?: boolean;
|
|
38
|
+
useLatestExpoSdk?: boolean;
|
|
39
|
+
usesExpoUi?: boolean;
|
|
40
|
+
usesExpoUiUniversalComponents?: boolean;
|
|
41
|
+
usesExpoNativeTabs?: boolean;
|
|
42
|
+
easUses?: string[];
|
|
43
|
+
guidelinesTemplate?: boolean;
|
|
44
|
+
dataStart?: OnboardAnswers['dataStart'];
|
|
45
|
+
testToMainSafeguards?: boolean;
|
|
46
|
+
saveDefaults?: boolean;
|
|
47
|
+
}
|
|
48
|
+
export interface CessIntakeOption {
|
|
49
|
+
value: string | boolean;
|
|
50
|
+
label: string;
|
|
51
|
+
hint?: string;
|
|
52
|
+
}
|
|
53
|
+
export interface CessIntakeQuestion {
|
|
54
|
+
id: string;
|
|
55
|
+
prompt: string;
|
|
56
|
+
kind: 'text' | 'single-select' | 'multi-select';
|
|
57
|
+
options?: CessIntakeOption[];
|
|
58
|
+
defaultValue?: string | boolean | string[];
|
|
59
|
+
explanation?: string;
|
|
60
|
+
}
|
|
61
|
+
export interface CessIntakeStepResult {
|
|
62
|
+
status: CessIntakeStatus;
|
|
63
|
+
nextQuestion?: CessIntakeQuestion;
|
|
64
|
+
options?: CessIntakeOption[];
|
|
65
|
+
defaultValue?: string | boolean | string[];
|
|
66
|
+
updatedAnswers: Partial<CessIntakeAnswers>;
|
|
67
|
+
missingRequirements: string[];
|
|
68
|
+
summaryLines?: string[];
|
|
69
|
+
projectPath?: string;
|
|
70
|
+
parentDir?: string;
|
|
71
|
+
appName?: string;
|
|
72
|
+
}
|
|
73
|
+
export interface CessResolvedPlan {
|
|
74
|
+
projectPath: string;
|
|
75
|
+
parentDir: string;
|
|
76
|
+
appName: string;
|
|
77
|
+
answers: CessIntakeAnswers;
|
|
78
|
+
onboardArgv: OnboardArgv;
|
|
79
|
+
onboardAnswers: OnboardAnswers;
|
|
80
|
+
createExpoStackFlags: string[];
|
|
81
|
+
mdsFlags: string[];
|
|
82
|
+
summaryLines: string[];
|
|
83
|
+
}
|
|
84
|
+
export declare function buildCessIntakeStep(input: {
|
|
85
|
+
parentDir?: string;
|
|
86
|
+
appName?: string;
|
|
87
|
+
answers?: Partial<CessIntakeAnswers>;
|
|
88
|
+
cwd?: string;
|
|
89
|
+
}): CessIntakeStepResult;
|
|
90
|
+
export declare function resolveCessPlan(input: {
|
|
91
|
+
parentDir?: string;
|
|
92
|
+
appName?: string;
|
|
93
|
+
answers?: Partial<CessIntakeAnswers>;
|
|
94
|
+
cwd?: string;
|
|
95
|
+
}): CessResolvedPlan;
|
|
96
|
+
export declare function validateCessGenerationReadiness(input: {
|
|
97
|
+
parentDir?: string;
|
|
98
|
+
appName?: string;
|
|
99
|
+
answers?: Partial<CessIntakeAnswers>;
|
|
100
|
+
cwd?: string;
|
|
101
|
+
}): string[];
|
|
102
|
+
export declare function normalizeCessIntakeAnswers(answers: Partial<CessIntakeAnswers> | undefined): Partial<CessIntakeAnswers>;
|
|
103
|
+
export declare function buildCreateExpoStackFlags(answers: CessIntakeAnswers): string[];
|
|
104
|
+
export declare function buildMdsFlags(appName: string, onboardAnswers: OnboardAnswers, intakeAnswers: CessIntakeAnswers): string[];
|
|
105
|
+
export declare function buildCreateExpoSuperStackArgv(plan: CessResolvedPlan): string[];
|
|
106
|
+
export declare function buildCessSummaryLines(parentDir: string, appName: string, answers: CessIntakeAnswers, onboardAnswers: OnboardAnswers): string[];
|
|
107
|
+
//# sourceMappingURL=cess-intake.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cess-intake.d.ts","sourceRoot":"","sources":["../src/cess-intake.ts"],"names":[],"mappings":"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"}
|