@mr.dj2u/knowledge 0.1.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.
- package/dist/content/checklists/ship-test-loop.md +16 -0
- package/dist/content/checklists/unified-agent-bundle-validation.md +8 -0
- package/dist/content/examples/ship-test-loop.md +13 -0
- package/dist/content/examples/unified-agent-bundle-bootstrap.md +8 -0
- package/dist/content/guides/animation-performance.md +30 -0
- package/dist/content/guides/post-create-onboarding.md +113 -0
- package/dist/content/patterns/api/api-routes.md +314 -0
- package/dist/content/patterns/api/error-handling.md +311 -0
- package/dist/content/patterns/database/drizzle-schema.md +280 -0
- package/dist/content/patterns/database/migrations.md +365 -0
- package/dist/content/patterns/database/query-organization.md +537 -0
- package/dist/content/patterns/database/relations.md +450 -0
- package/dist/content/patterns/deployment/build-configuration.md +452 -0
- package/dist/content/patterns/deployment/ci-cd-patterns.md +448 -0
- package/dist/content/patterns/deployment/environment-config.md +380 -0
- package/dist/content/patterns/deployment/hosting-setup.md +425 -0
- package/dist/content/patterns/project/configuration-patterns.md +459 -0
- package/dist/content/patterns/project/documentation-org.md +506 -0
- package/dist/content/patterns/project/folder-structure.md +398 -0
- package/dist/content/patterns/project/library-exports.md +465 -0
- package/dist/content/patterns/project/monorepo-structure.md +500 -0
- package/dist/content/patterns/routing/dynamic-routes.md +221 -0
- package/dist/content/patterns/routing/file-based-routing.md +186 -0
- package/dist/content/patterns/routing/route-groups.md +429 -0
- package/dist/content/patterns/state/persistence-middleware.md +521 -0
- package/dist/content/patterns/state/selector-hooks.md +538 -0
- package/dist/content/patterns/state/store-organization.md +539 -0
- package/dist/content/patterns/state/zustand-patterns.md +348 -0
- package/dist/content/patterns/styling/component-styling.md +468 -0
- package/dist/content/patterns/styling/responsive-patterns.md +398 -0
- package/dist/content/patterns/styling/theme-configuration.md +426 -0
- package/dist/content/patterns/styling/uniwind-setup.md +412 -0
- package/dist/content/prompts/continue-development.md +27 -0
- package/dist/content/prompts/create-expo-super-stack.md +29 -0
- package/dist/content/prompts/fix-seo.md +29 -0
- package/dist/content/prompts/onboard-new-expo-app.md +11 -0
- package/dist/content/prompts/prepare-deploy.md +29 -0
- package/dist/content/prompts/project-research-plan.md +29 -0
- package/dist/content/prompts/review-expo-project.md +29 -0
- package/dist/content/prompts/run-doctor.md +30 -0
- package/dist/content/prompts/ship-test-loop.md +24 -0
- package/dist/content/reference/create-expo-stack-uniwind.md +29 -0
- package/dist/content/reference/doctor-dogfood.md +42 -0
- package/dist/content/reference/mcp-sdk-transport.md +30 -0
- package/dist/content/reference/package-ci-patterns.md +24 -0
- package/dist/content/reference/reference-repo-evacuation.md +31 -0
- package/dist/content/resource-index.json +67 -0
- package/dist/content/rules/app-folder-architecture.md +13 -0
- package/dist/content/rules/env-hygiene.md +9 -0
- package/dist/content/rules/seo-metadata.md +7 -0
- package/dist/content/rules/ssr-safety.md +9 -0
- package/dist/content/skills/api-routes.md +33 -0
- package/dist/content/skills/continue-development.md +31 -0
- package/dist/content/skills/debugging.md +31 -0
- package/dist/content/skills/deployment.md +32 -0
- package/dist/content/skills/dev-server-management.md +31 -0
- package/dist/content/skills/env-vars.md +32 -0
- package/dist/content/skills/expo-router-architecture.md +33 -0
- package/dist/content/skills/expo-ssr-safety.md +32 -0
- package/dist/content/skills/plugin-creation.md +41 -0
- package/dist/content/skills/production-server-patterns.md +31 -0
- package/dist/content/skills/project-onboarding.md +31 -0
- package/dist/content/skills/research-plan-intake.md +31 -0
- package/dist/content/skills/seo-metadata.md +31 -0
- package/dist/content/skills/super-stack-startup.md +31 -0
- package/dist/content/skills/uniwind-theming.md +32 -0
- package/dist/index.d.ts +46 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +369 -0
- package/dist/index.js.map +1 -0
- package/dist/patterns/index.d.ts +78 -0
- package/dist/patterns/index.d.ts.map +1 -0
- package/dist/patterns/index.js +264 -0
- package/dist/patterns/index.js.map +1 -0
- package/dist/prompts/index.d.ts +35 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +270 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/skills/index.d.ts +3 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +2 -0
- package/dist/skills/index.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Skill: SEO Metadata
|
|
2
|
+
|
|
3
|
+
Use when preparing Expo web routes for crawlability, sharing previews, and production indexing behavior.
|
|
4
|
+
|
|
5
|
+
## Main rule
|
|
6
|
+
|
|
7
|
+
Define metadata intentionally per route group and ensure canonical/indexing strategy is explicit before release.
|
|
8
|
+
|
|
9
|
+
## Checks
|
|
10
|
+
|
|
11
|
+
- Confirm title, description, and canonical strategy are defined for production web routes.
|
|
12
|
+
- Confirm Open Graph and social preview metadata exist for key entry routes.
|
|
13
|
+
- Confirm dynamic routes have deterministic metadata sources.
|
|
14
|
+
- Confirm sitemap and robots strategy is documented for the chosen web output mode.
|
|
15
|
+
- Confirm duplicate or conflicting titles/canonicals are resolved.
|
|
16
|
+
|
|
17
|
+
## Preferred structure
|
|
18
|
+
|
|
19
|
+
- Keep shared metadata defaults centralized and route-level overrides explicit.
|
|
20
|
+
- Keep metadata source-of-truth close to route ownership boundaries.
|
|
21
|
+
- Keep SEO rules documented in project memory so onboarding and Doctor checks align.
|
|
22
|
+
|
|
23
|
+
## Example fix
|
|
24
|
+
|
|
25
|
+
- Problem: Dynamic content routes ship with repeated title/description and no canonical mapping.
|
|
26
|
+
- Fix: Add route-level metadata builder, include canonical generation logic, and update sitemap coverage.
|
|
27
|
+
|
|
28
|
+
## Agent behavior
|
|
29
|
+
|
|
30
|
+
- Prioritize production routes and highest-traffic entry points first.
|
|
31
|
+
- Delegate framework metadata primitives to official Expo guidance, then enforce MDS standards for canonical/indexing completeness.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Skill: Super Stack Startup
|
|
2
|
+
|
|
3
|
+
Use when kicking off a new app with `create-expo-super-stack` and transitioning into phase-based MDS development.
|
|
4
|
+
|
|
5
|
+
## Main rule
|
|
6
|
+
|
|
7
|
+
Run generator + onboarding as one guided flow, then hand off to a fresh app-folder session for implementation.
|
|
8
|
+
|
|
9
|
+
## Checks
|
|
10
|
+
|
|
11
|
+
- Confirm command runs from a parent directory where the app folder does not already exist.
|
|
12
|
+
- Confirm stack choices and MDS intake values are captured before generation.
|
|
13
|
+
- Confirm generated app includes project memory and onboarding next-step output.
|
|
14
|
+
- Confirm unresolved context markers are resolved before coding begins.
|
|
15
|
+
- Confirm follow-up uses `mds continue` from inside the generated app folder.
|
|
16
|
+
|
|
17
|
+
## Preferred structure
|
|
18
|
+
|
|
19
|
+
- Keep startup conversation in plain language and summarize choices before execution.
|
|
20
|
+
- Keep generation details in scripts/flags, but keep user-facing flow conversational.
|
|
21
|
+
- Keep post-generation workflow phase-based using the generated `project/todo.md`.
|
|
22
|
+
|
|
23
|
+
## Example fix
|
|
24
|
+
|
|
25
|
+
- Problem: User runs generation inside an existing app folder and gets mixed state artifacts.
|
|
26
|
+
- Fix: Restart from parent directory, regenerate cleanly, then continue in a new app-folder session.
|
|
27
|
+
|
|
28
|
+
## Agent behavior
|
|
29
|
+
|
|
30
|
+
- Prevent ambiguous execution context and confirm folder target before running generation.
|
|
31
|
+
- Delegate framework/template primitives to upstream Expo tooling, then apply MDS memory shaping, defaults, and continue-workflow conventions.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Skill: Uniwind Theming
|
|
2
|
+
|
|
3
|
+
Use when setting up or maintaining Tailwind v4 + Uniwind styling in Expo projects.
|
|
4
|
+
|
|
5
|
+
## Main rule
|
|
6
|
+
|
|
7
|
+
Prefer Uniwind with Tailwind v4 defaults, keep theme tokens centralized, and ensure bundler/style wiring is consistent across environments.
|
|
8
|
+
|
|
9
|
+
## Checks
|
|
10
|
+
|
|
11
|
+
- Confirm Tailwind v4 and Uniwind dependencies/config are aligned with project SDK.
|
|
12
|
+
- Confirm `global.css` import order loads Tailwind before Uniwind layers.
|
|
13
|
+
- Confirm Metro/bundler integration uses `withUniwindConfig` (or project-equivalent wiring).
|
|
14
|
+
- Confirm design tokens are centralized and reused instead of ad-hoc values.
|
|
15
|
+
- Confirm platform-specific style behavior is intentional and documented.
|
|
16
|
+
|
|
17
|
+
## Preferred structure
|
|
18
|
+
|
|
19
|
+
- Keep token definitions in one source module/file.
|
|
20
|
+
- Keep style-system setup in project bootstrap/config files, not scattered across screens.
|
|
21
|
+
- Keep shared class patterns in reusable UI components.
|
|
22
|
+
|
|
23
|
+
## Example fix
|
|
24
|
+
|
|
25
|
+
- Problem: Global styles load in the wrong order, causing token classes to fail on web.
|
|
26
|
+
- Fix: Reorder style imports, verify Metro integration, and move duplicate token literals into shared theme config.
|
|
27
|
+
|
|
28
|
+
## Agent behavior
|
|
29
|
+
|
|
30
|
+
- Preserve existing design intent while fixing setup drift.
|
|
31
|
+
- Delegate framework styling primitives to official Expo/Uniwind docs, then apply MDS conventions for token consistency and onboarding readiness.
|
|
32
|
+
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { PatternCategory } from './patterns/index.js';
|
|
2
|
+
export type { PatternCategory, PatternMetadata } from './patterns/index.js';
|
|
3
|
+
export type { McpToolSpec, PromptArgSpec, PromptSpec, PromptSpecContent, PromptSurface, } from './prompts/index.js';
|
|
4
|
+
export { getMcpToolSpec, getPromptSpec, listMcpToolSpecs, listPromptSpecs, readPromptContent, readPromptSpec, } from './prompts/index.js';
|
|
5
|
+
export type KnowledgeKind = 'pattern' | 'guide' | 'rule' | 'skill' | 'reference' | 'checklist' | 'example' | 'prompt';
|
|
6
|
+
export interface Pattern {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
category: PatternCategory;
|
|
11
|
+
source?: string;
|
|
12
|
+
example?: string;
|
|
13
|
+
references?: string[];
|
|
14
|
+
uri: string;
|
|
15
|
+
resourcePath?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface Skill {
|
|
18
|
+
id: string;
|
|
19
|
+
name: string;
|
|
20
|
+
description: string;
|
|
21
|
+
content: string;
|
|
22
|
+
tags: string[];
|
|
23
|
+
uri: string;
|
|
24
|
+
}
|
|
25
|
+
export interface KnowledgeResource {
|
|
26
|
+
id: string;
|
|
27
|
+
uri: string;
|
|
28
|
+
kind: KnowledgeKind;
|
|
29
|
+
name: string;
|
|
30
|
+
description: string;
|
|
31
|
+
resourcePath: string;
|
|
32
|
+
keywords: string[];
|
|
33
|
+
category?: PatternCategory;
|
|
34
|
+
sourceRepos?: string[];
|
|
35
|
+
}
|
|
36
|
+
export interface KnowledgeResourceContent extends KnowledgeResource {
|
|
37
|
+
content: string;
|
|
38
|
+
}
|
|
39
|
+
export declare function getPattern(id: string): Promise<Pattern | null>;
|
|
40
|
+
export declare function listPatterns(category?: PatternCategory): Promise<Pattern[]>;
|
|
41
|
+
export declare function getSkill(id: string): Promise<Skill | null>;
|
|
42
|
+
export declare function searchSkills(query: string): Promise<Skill[]>;
|
|
43
|
+
export declare function listKnowledgeResources(kind?: KnowledgeKind): KnowledgeResource[];
|
|
44
|
+
export declare function getKnowledgeResource(uriOrId: string): KnowledgeResource | null;
|
|
45
|
+
export declare function readKnowledgeResource(uriOrId: string): Promise<KnowledgeResourceContent | null>;
|
|
46
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,qBAAqB,CAAC;AAG5E,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC5E,YAAY,EACV,WAAW,EACX,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,OAAO,GACP,MAAM,GACN,OAAO,GACP,WAAW,GACX,WAAW,GACX,SAAS,GACT,QAAQ,CAAC;AAEb,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IACjE,OAAO,EAAE,MAAM,CAAC;CACjB;AAqPD,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAOpE;AAED,wBAAsB,YAAY,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAEjF;AAED,wBAAsB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAchE;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAmBlE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,iBAAiB,EAAE,CAehF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAK9E;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAUrG"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { getPatternMetadata, listPatternMetadata, } from './patterns/index.js';
|
|
5
|
+
import { listPromptSpecs } from './prompts/index.js';
|
|
6
|
+
export { getMcpToolSpec, getPromptSpec, listMcpToolSpecs, listPromptSpecs, readPromptContent, readPromptSpec, } from './prompts/index.js';
|
|
7
|
+
const CONTENT_ROOT = path.join(path.dirname(fileURLToPath(import.meta.url)), 'content');
|
|
8
|
+
const GUIDE_RESOURCES = [
|
|
9
|
+
{
|
|
10
|
+
id: 'animation-performance',
|
|
11
|
+
name: 'Animation Performance Guide',
|
|
12
|
+
description: 'Practical React Native animation performance guidance from Expo/App & Flow benchmarks.',
|
|
13
|
+
resourcePath: 'guides/animation-performance.md',
|
|
14
|
+
keywords: ['animation', 'performance', 'reanimated', 'lists'],
|
|
15
|
+
sourceRepos: ['Expo blog', 'App & Flow'],
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
id: 'post-create-onboarding',
|
|
19
|
+
name: 'Post-Create Expo Onboarding',
|
|
20
|
+
description: 'Agent-led setup flow after rn-new or create-expo-app.',
|
|
21
|
+
resourcePath: 'guides/post-create-onboarding.md',
|
|
22
|
+
keywords: ['onboard', 'expo', 'create-expo-app', 'uniwind'],
|
|
23
|
+
sourceRepos: ['expo-super-template', 'create-expo-stack'],
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
const RULE_RESOURCES = [
|
|
27
|
+
{
|
|
28
|
+
id: 'app-folder-architecture',
|
|
29
|
+
name: 'App Folder Architecture Rule',
|
|
30
|
+
description: 'Keep Expo Router route files thin and free of business/data logic.',
|
|
31
|
+
resourcePath: 'rules/app-folder-architecture.md',
|
|
32
|
+
keywords: ['app folder', 'architecture', 'route files'],
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
id: 'env-hygiene',
|
|
36
|
+
name: 'Environment Hygiene Rule',
|
|
37
|
+
description: 'Prevent secret-looking values from being exposed through EXPO_PUBLIC variables.',
|
|
38
|
+
resourcePath: 'rules/env-hygiene.md',
|
|
39
|
+
keywords: ['env', 'secrets', 'expo public'],
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
id: 'ssr-safety',
|
|
43
|
+
name: 'SSR Safety Rule',
|
|
44
|
+
description: 'Guard browser globals and client-only APIs in Expo web/server paths.',
|
|
45
|
+
resourcePath: 'rules/ssr-safety.md',
|
|
46
|
+
keywords: ['ssr', 'window', 'localStorage'],
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
id: 'seo-metadata',
|
|
50
|
+
name: 'SEO Metadata Rule',
|
|
51
|
+
description: 'Ensure production web routes have a metadata and indexing strategy.',
|
|
52
|
+
resourcePath: 'rules/seo-metadata.md',
|
|
53
|
+
keywords: ['seo', 'metadata', 'canonical', 'sitemap'],
|
|
54
|
+
},
|
|
55
|
+
];
|
|
56
|
+
const SKILL_RESOURCES = [
|
|
57
|
+
{
|
|
58
|
+
id: 'expo-router-architecture',
|
|
59
|
+
name: 'Expo Router Architecture Skill',
|
|
60
|
+
description: 'Instructions for reviewing and building thin Expo Router route files.',
|
|
61
|
+
resourcePath: 'skills/expo-router-architecture.md',
|
|
62
|
+
keywords: ['expo router', 'architecture', 'routes'],
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
id: 'expo-ssr-safety',
|
|
66
|
+
name: 'Expo SSR Safety Skill',
|
|
67
|
+
description: 'Instructions for avoiding web/server runtime crashes.',
|
|
68
|
+
resourcePath: 'skills/expo-ssr-safety.md',
|
|
69
|
+
keywords: ['ssr', 'web', 'guards'],
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
id: 'env-vars',
|
|
73
|
+
name: 'Environment Variables Skill',
|
|
74
|
+
description: 'Instructions for public/private env variable boundaries.',
|
|
75
|
+
resourcePath: 'skills/env-vars.md',
|
|
76
|
+
keywords: ['env', 'secrets', 'configuration'],
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
id: 'uniwind-theming',
|
|
80
|
+
name: 'Uniwind Theming Skill',
|
|
81
|
+
description: 'Instructions for Tailwind v4 and Uniwind setup.',
|
|
82
|
+
resourcePath: 'skills/uniwind-theming.md',
|
|
83
|
+
keywords: ['uniwind', 'tailwind', 'theme'],
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
id: 'api-routes',
|
|
87
|
+
name: 'API Routes Skill',
|
|
88
|
+
description: 'Instructions for secure Expo Router API routes.',
|
|
89
|
+
resourcePath: 'skills/api-routes.md',
|
|
90
|
+
keywords: ['api routes', 'validation', 'auth'],
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
id: 'deployment',
|
|
94
|
+
name: 'Deployment Readiness Skill',
|
|
95
|
+
description: 'Instructions for local checks before shipping an Expo app.',
|
|
96
|
+
resourcePath: 'skills/deployment.md',
|
|
97
|
+
keywords: ['deployment', 'doctor', 'ci'],
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
id: 'dev-server-management',
|
|
101
|
+
name: 'Dev Server Management Skill',
|
|
102
|
+
description: 'Instructions for recovering Expo/Metro local dev-server state and resolving port/cache conflicts.',
|
|
103
|
+
resourcePath: 'skills/dev-server-management.md',
|
|
104
|
+
keywords: ['dev server', 'expo start', 'metro', 'ports', 'cache'],
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
id: 'production-server-patterns',
|
|
108
|
+
name: 'Production Server Patterns Skill',
|
|
109
|
+
description: 'Instructions for choosing and running Expo production serving modes.',
|
|
110
|
+
resourcePath: 'skills/production-server-patterns.md',
|
|
111
|
+
keywords: ['production server', 'expo serve', 'express', 'server.js'],
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
id: 'seo-metadata',
|
|
115
|
+
name: 'SEO Metadata Skill',
|
|
116
|
+
description: 'Instructions for production web metadata, canonical URLs, and indexing strategy.',
|
|
117
|
+
resourcePath: 'skills/seo-metadata.md',
|
|
118
|
+
keywords: ['seo', 'metadata', 'canonical', 'open graph'],
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
id: 'debugging',
|
|
122
|
+
name: 'Debugging Skill',
|
|
123
|
+
description: 'Instructions for reproducible issue triage and root-cause-first fixes.',
|
|
124
|
+
resourcePath: 'skills/debugging.md',
|
|
125
|
+
keywords: ['debugging', 'triage', 'doctor', 'root cause'],
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
id: 'project-onboarding',
|
|
129
|
+
name: 'Project Onboarding Skill',
|
|
130
|
+
description: 'Instructions for onboarding an existing Expo app into MDS project memory and workflow.',
|
|
131
|
+
resourcePath: 'skills/project-onboarding.md',
|
|
132
|
+
keywords: ['onboarding', 'project memory', 'expo app'],
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
id: 'super-stack-startup',
|
|
136
|
+
name: 'Super Stack Startup Skill',
|
|
137
|
+
description: 'Instructions for running create-expo-super-stack and handing off to phase-based app development.',
|
|
138
|
+
resourcePath: 'skills/super-stack-startup.md',
|
|
139
|
+
keywords: ['create-expo-super-stack', 'startup', 'onboarding flow'],
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
id: 'continue-development',
|
|
143
|
+
name: 'Continue Development Skill',
|
|
144
|
+
description: 'Instructions for choosing and progressing the next task from project/todo.md.',
|
|
145
|
+
resourcePath: 'skills/continue-development.md',
|
|
146
|
+
keywords: ['continue', 'todo', 'phase', 'roadmap'],
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
id: 'research-plan-intake',
|
|
150
|
+
name: 'Research Plan Intake Skill',
|
|
151
|
+
description: 'Instructions for turning raw research and notes into canonical MDS project memory.',
|
|
152
|
+
resourcePath: 'skills/research-plan-intake.md',
|
|
153
|
+
keywords: ['research', 'intake', 'project info', 'planning'],
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
id: 'plugin-creation',
|
|
157
|
+
name: 'MDS Plugin Creation Skill',
|
|
158
|
+
description: 'Instructions for building a new MDS plugin bundle for Claude Code, Codex, Cursor, or any AI agent client.',
|
|
159
|
+
resourcePath: 'skills/plugin-creation.md',
|
|
160
|
+
keywords: ['plugin', 'claude code', 'codex', 'commands', 'bundle'],
|
|
161
|
+
},
|
|
162
|
+
];
|
|
163
|
+
const REFERENCE_RESOURCES = [
|
|
164
|
+
{
|
|
165
|
+
id: 'reference-repo-evacuation',
|
|
166
|
+
name: 'Reference Repo Evacuation',
|
|
167
|
+
description: 'Inventory of harvested reference repos and cleanup rules.',
|
|
168
|
+
resourcePath: 'reference/reference-repo-evacuation.md',
|
|
169
|
+
keywords: ['reference repos', 'evacuation', 'phase 1'],
|
|
170
|
+
sourceRepos: ['mds-dev-suite'],
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
id: 'mcp-sdk-transport',
|
|
174
|
+
name: 'MCP SDK Transport Pattern',
|
|
175
|
+
description: 'MCP server/stdio transport pattern harvested from mds-app-mcp.',
|
|
176
|
+
resourcePath: 'reference/mcp-sdk-transport.md',
|
|
177
|
+
keywords: ['mcp', 'stdio', 'resources', 'tools'],
|
|
178
|
+
sourceRepos: ['mds-app-mcp'],
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
id: 'package-ci-patterns',
|
|
182
|
+
name: 'Package And CI Patterns',
|
|
183
|
+
description: 'Package build/test/typecheck patterns from SDK and monorepo references.',
|
|
184
|
+
resourcePath: 'reference/package-ci-patterns.md',
|
|
185
|
+
keywords: ['ci', 'sdk', 'package', 'exports'],
|
|
186
|
+
sourceRepos: ['core-monorepo', 'mercury-bank-sdk', 'ads-sdk', 'quantum-api'],
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
id: 'doctor-dogfood',
|
|
190
|
+
name: 'Doctor Dogfood Notes',
|
|
191
|
+
description: 'Required Phase 1 Doctor dogfood targets and acceptance notes.',
|
|
192
|
+
resourcePath: 'reference/doctor-dogfood.md',
|
|
193
|
+
keywords: ['doctor', 'dogfood', 'verification'],
|
|
194
|
+
sourceRepos: ['time2pay', 'DJsPortfolio', 'PokePages', 'expo-super-template', 'core-monorepo'],
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
id: 'create-expo-stack-uniwind',
|
|
198
|
+
name: 'create-expo-stack Uniwind Exploration',
|
|
199
|
+
description: 'Focused upstream contribution notes for adding Uniwind support.',
|
|
200
|
+
resourcePath: 'reference/create-expo-stack-uniwind.md',
|
|
201
|
+
keywords: ['create-expo-stack', 'rn-new', 'uniwind', 'upstream'],
|
|
202
|
+
sourceRepos: ['create-expo-stack'],
|
|
203
|
+
},
|
|
204
|
+
];
|
|
205
|
+
const CHECKLIST_RESOURCES = [
|
|
206
|
+
{
|
|
207
|
+
id: 'ship-test-loop',
|
|
208
|
+
name: 'Ship-Test Loop Checklist',
|
|
209
|
+
description: 'Checklist for doctor/PR/fix/poll/merge loops into the test branch.',
|
|
210
|
+
resourcePath: 'checklists/ship-test-loop.md',
|
|
211
|
+
keywords: ['checklist', 'ship', 'test branch', 'pull request'],
|
|
212
|
+
sourceRepos: ['mds-dev-suite'],
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
id: 'unified-agent-bundle-validation',
|
|
216
|
+
name: 'Unified Agent Bundle Validation Checklist',
|
|
217
|
+
description: 'Phase 9 validation checklist for the unified agent bundle.',
|
|
218
|
+
resourcePath: 'checklists/unified-agent-bundle-validation.md',
|
|
219
|
+
keywords: ['phase 9', 'unified bundle', 'validation'],
|
|
220
|
+
sourceRepos: ['mds-dev-suite'],
|
|
221
|
+
},
|
|
222
|
+
];
|
|
223
|
+
const EXAMPLE_RESOURCES = [
|
|
224
|
+
{
|
|
225
|
+
id: 'ship-test-loop',
|
|
226
|
+
name: 'Ship-Test Loop Example',
|
|
227
|
+
description: 'Example iteration log for a PR loop into the test branch.',
|
|
228
|
+
resourcePath: 'examples/ship-test-loop.md',
|
|
229
|
+
keywords: ['example', 'ship', 'iteration'],
|
|
230
|
+
sourceRepos: ['mds-dev-suite'],
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
id: 'unified-agent-bundle-bootstrap',
|
|
234
|
+
name: 'Unified Agent Bundle Bootstrap Example',
|
|
235
|
+
description: 'Phase 9 bootstrap example for unified agent bundle installation.',
|
|
236
|
+
resourcePath: 'examples/unified-agent-bundle-bootstrap.md',
|
|
237
|
+
keywords: ['phase 9', 'bundle', 'bootstrap'],
|
|
238
|
+
sourceRepos: ['mds-dev-suite'],
|
|
239
|
+
},
|
|
240
|
+
];
|
|
241
|
+
export async function getPattern(id) {
|
|
242
|
+
const metadata = getPatternMetadata(id);
|
|
243
|
+
if (!metadata) {
|
|
244
|
+
return null;
|
|
245
|
+
}
|
|
246
|
+
return patternFromMetadata(metadata);
|
|
247
|
+
}
|
|
248
|
+
export async function listPatterns(category) {
|
|
249
|
+
return listPatternMetadata(category).map(patternFromMetadata);
|
|
250
|
+
}
|
|
251
|
+
export async function getSkill(id) {
|
|
252
|
+
const resource = getKnowledgeResource(`mds://skills/${id}`);
|
|
253
|
+
if (!resource || resource.kind !== 'skill') {
|
|
254
|
+
return null;
|
|
255
|
+
}
|
|
256
|
+
return {
|
|
257
|
+
id: resource.id,
|
|
258
|
+
name: resource.name,
|
|
259
|
+
description: resource.description,
|
|
260
|
+
content: await readContent(resource.resourcePath),
|
|
261
|
+
tags: resource.keywords,
|
|
262
|
+
uri: resource.uri,
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
export async function searchSkills(query) {
|
|
266
|
+
const normalizedQuery = query.toLowerCase();
|
|
267
|
+
const matches = listKnowledgeResources('skill').filter((resource) => {
|
|
268
|
+
return [resource.id, resource.name, resource.description, ...resource.keywords]
|
|
269
|
+
.join(' ')
|
|
270
|
+
.toLowerCase()
|
|
271
|
+
.includes(normalizedQuery);
|
|
272
|
+
});
|
|
273
|
+
return Promise.all(matches.map(async (resource) => ({
|
|
274
|
+
id: resource.id,
|
|
275
|
+
name: resource.name,
|
|
276
|
+
description: resource.description,
|
|
277
|
+
content: await readContent(resource.resourcePath),
|
|
278
|
+
tags: resource.keywords,
|
|
279
|
+
uri: resource.uri,
|
|
280
|
+
})));
|
|
281
|
+
}
|
|
282
|
+
export function listKnowledgeResources(kind) {
|
|
283
|
+
const resources = [
|
|
284
|
+
...listPatternMetadata().map(patternResourceFromMetadata),
|
|
285
|
+
...GUIDE_RESOURCES.map((resource) => simpleResource('guide', resource)),
|
|
286
|
+
...RULE_RESOURCES.map((resource) => simpleResource('rule', resource)),
|
|
287
|
+
...SKILL_RESOURCES.map((resource) => simpleResource('skill', resource)),
|
|
288
|
+
...REFERENCE_RESOURCES.map((resource) => simpleResource('reference', resource)),
|
|
289
|
+
...CHECKLIST_RESOURCES.map((resource) => simpleResource('checklist', resource)),
|
|
290
|
+
...EXAMPLE_RESOURCES.map((resource) => simpleResource('example', resource)),
|
|
291
|
+
...listPromptSpecs()
|
|
292
|
+
.filter((spec) => spec.surfaces.some((surface) => surface !== 'phase9-artifact'))
|
|
293
|
+
.map(promptResourceFromSpec),
|
|
294
|
+
];
|
|
295
|
+
return kind ? resources.filter((resource) => resource.kind === kind) : resources;
|
|
296
|
+
}
|
|
297
|
+
export function getKnowledgeResource(uriOrId) {
|
|
298
|
+
const resources = listKnowledgeResources();
|
|
299
|
+
return (resources.find((resource) => resource.uri === uriOrId || resource.id === uriOrId) ?? null);
|
|
300
|
+
}
|
|
301
|
+
export async function readKnowledgeResource(uriOrId) {
|
|
302
|
+
const resource = getKnowledgeResource(uriOrId);
|
|
303
|
+
if (!resource) {
|
|
304
|
+
return null;
|
|
305
|
+
}
|
|
306
|
+
return {
|
|
307
|
+
...resource,
|
|
308
|
+
content: await readContent(resource.resourcePath),
|
|
309
|
+
};
|
|
310
|
+
}
|
|
311
|
+
function patternFromMetadata(metadata) {
|
|
312
|
+
return {
|
|
313
|
+
id: metadata.id,
|
|
314
|
+
name: metadata.name,
|
|
315
|
+
description: metadata.description,
|
|
316
|
+
category: metadata.category,
|
|
317
|
+
source: metadata.sourceRepos.join(', '),
|
|
318
|
+
references: metadata.resourcePath ? [metadata.resourcePath] : [],
|
|
319
|
+
uri: `mds://patterns/${metadata.id}`,
|
|
320
|
+
resourcePath: metadata.resourcePath,
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
function patternResourceFromMetadata(metadata) {
|
|
324
|
+
return {
|
|
325
|
+
id: metadata.id,
|
|
326
|
+
uri: `mds://patterns/${metadata.id}`,
|
|
327
|
+
kind: 'pattern',
|
|
328
|
+
name: metadata.name,
|
|
329
|
+
description: metadata.description,
|
|
330
|
+
resourcePath: metadata.resourcePath ?? 'reference/reference-repo-evacuation.md',
|
|
331
|
+
keywords: metadata.keywords,
|
|
332
|
+
category: metadata.category,
|
|
333
|
+
sourceRepos: metadata.sourceRepos,
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
function promptResourceFromSpec(spec) {
|
|
337
|
+
return {
|
|
338
|
+
id: spec.id,
|
|
339
|
+
uri: `mds://prompts/${spec.slug}`,
|
|
340
|
+
kind: 'prompt',
|
|
341
|
+
name: spec.title,
|
|
342
|
+
description: spec.description,
|
|
343
|
+
resourcePath: spec.resourcePath,
|
|
344
|
+
keywords: [...spec.keywords],
|
|
345
|
+
};
|
|
346
|
+
}
|
|
347
|
+
function simpleResource(kind, resource) {
|
|
348
|
+
return {
|
|
349
|
+
id: resource.id,
|
|
350
|
+
uri: `mds://${resourceNamespace(kind)}/${resource.id}`,
|
|
351
|
+
kind,
|
|
352
|
+
name: resource.name,
|
|
353
|
+
description: resource.description,
|
|
354
|
+
resourcePath: resource.resourcePath,
|
|
355
|
+
keywords: [...resource.keywords],
|
|
356
|
+
sourceRepos: resource.sourceRepos ? [...resource.sourceRepos] : undefined,
|
|
357
|
+
};
|
|
358
|
+
}
|
|
359
|
+
function resourceNamespace(kind) {
|
|
360
|
+
return kind === 'reference' ? 'reference' : `${kind}s`;
|
|
361
|
+
}
|
|
362
|
+
async function readContent(resourcePath) {
|
|
363
|
+
const safePath = path.normalize(resourcePath);
|
|
364
|
+
if (safePath.startsWith('..') || path.isAbsolute(safePath)) {
|
|
365
|
+
throw new Error(`Invalid knowledge resource path: ${resourcePath}`);
|
|
366
|
+
}
|
|
367
|
+
return readFile(path.join(CONTENT_ROOT, safePath), 'utf8');
|
|
368
|
+
}
|
|
369
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
export type PatternCategory = 'routing' | 'api' | 'styling' | 'state' | 'database' | 'deployment' | 'project' | 'automation';
|
|
2
|
+
export interface PatternMetadata {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
category: PatternCategory;
|
|
7
|
+
sourceRepos: string[];
|
|
8
|
+
resourcePath?: string;
|
|
9
|
+
keywords: string[];
|
|
10
|
+
}
|
|
11
|
+
export declare const PATTERN_METADATA: ({
|
|
12
|
+
id: string;
|
|
13
|
+
name: string;
|
|
14
|
+
description: string;
|
|
15
|
+
category: "routing";
|
|
16
|
+
sourceRepos: string[];
|
|
17
|
+
resourcePath: string;
|
|
18
|
+
keywords: string[];
|
|
19
|
+
} | {
|
|
20
|
+
id: string;
|
|
21
|
+
name: string;
|
|
22
|
+
description: string;
|
|
23
|
+
category: "api";
|
|
24
|
+
sourceRepos: string[];
|
|
25
|
+
resourcePath: string;
|
|
26
|
+
keywords: string[];
|
|
27
|
+
} | {
|
|
28
|
+
id: string;
|
|
29
|
+
name: string;
|
|
30
|
+
description: string;
|
|
31
|
+
category: "styling";
|
|
32
|
+
sourceRepos: string[];
|
|
33
|
+
resourcePath: string;
|
|
34
|
+
keywords: string[];
|
|
35
|
+
} | {
|
|
36
|
+
id: string;
|
|
37
|
+
name: string;
|
|
38
|
+
description: string;
|
|
39
|
+
category: "state";
|
|
40
|
+
sourceRepos: string[];
|
|
41
|
+
resourcePath: string;
|
|
42
|
+
keywords: string[];
|
|
43
|
+
} | {
|
|
44
|
+
id: string;
|
|
45
|
+
name: string;
|
|
46
|
+
description: string;
|
|
47
|
+
category: "database";
|
|
48
|
+
sourceRepos: string[];
|
|
49
|
+
resourcePath: string;
|
|
50
|
+
keywords: string[];
|
|
51
|
+
} | {
|
|
52
|
+
id: string;
|
|
53
|
+
name: string;
|
|
54
|
+
description: string;
|
|
55
|
+
category: "deployment";
|
|
56
|
+
sourceRepos: string[];
|
|
57
|
+
resourcePath: string;
|
|
58
|
+
keywords: string[];
|
|
59
|
+
} | {
|
|
60
|
+
id: string;
|
|
61
|
+
name: string;
|
|
62
|
+
description: string;
|
|
63
|
+
category: "project";
|
|
64
|
+
sourceRepos: string[];
|
|
65
|
+
resourcePath: string;
|
|
66
|
+
keywords: string[];
|
|
67
|
+
} | {
|
|
68
|
+
id: string;
|
|
69
|
+
name: string;
|
|
70
|
+
description: string;
|
|
71
|
+
category: "automation";
|
|
72
|
+
sourceRepos: string[];
|
|
73
|
+
resourcePath: string;
|
|
74
|
+
keywords: string[];
|
|
75
|
+
})[];
|
|
76
|
+
export declare function listPatternMetadata(category?: PatternCategory): PatternMetadata[];
|
|
77
|
+
export declare function getPatternMetadata(id: string): PatternMetadata | null;
|
|
78
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/patterns/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,KAAK,GACL,SAAS,GACT,OAAO,GACP,UAAU,GACV,YAAY,GACZ,SAAS,GACT,YAAY,CAAC;AAEjB,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6PA,CAAC;AAE9B,wBAAgB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,eAAe,EAAE,CAMjF;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAErE"}
|