@polymorphism-tech/morph-spec 7.8.1 → 7.9.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/README.md +2 -2
- package/bin/morph-spec.js +30 -1
- package/bin/validate.js +379 -379
- package/claude-plugin.json +1 -1
- package/docs/CHEATSHEET.md +1 -1
- package/docs/QUICKSTART.md +1 -1
- package/framework/CLAUDE.md +3 -1
- package/framework/MORPH.md +4 -3
- package/framework/commands/commit.md +166 -166
- package/framework/commands/morph-infra.md +215 -215
- package/framework/commands/morph-preflight.md +205 -205
- package/framework/commands/morph-troubleshoot.md +124 -124
- package/framework/evals/trace-schema.md +22 -12
- package/framework/hooks/README.md +2 -0
- package/framework/hooks/claude-code/core/subagent-report-guard.js +95 -0
- package/framework/hooks/claude-code/core/trace-autogen.js +183 -0
- package/framework/hooks/claude-code/statusline.py +679 -679
- package/framework/hooks/claude-code/statusline.sh +11 -11
- package/framework/hooks/git/commit-msg/conventional-commits.sh +33 -33
- package/framework/hooks/git/pre-commit/agents.sh +25 -25
- package/framework/hooks/git/pre-commit/orchestrator.sh +64 -64
- package/framework/hooks/git/pre-commit/specs.sh +50 -50
- package/framework/hooks/git/pre-push/run-tests.sh +44 -44
- package/framework/hooks/shared/activity-logger.js +160 -160
- package/framework/hooks/shared/hook-response.js +45 -45
- package/framework/hooks/shared/payload-utils.js +78 -78
- package/framework/hooks/shared/stdin-reader.js +26 -26
- package/framework/hooks/shared/tasks-validator.js +47 -4
- package/framework/rubrics/backend.json +41 -41
- package/framework/rules/ai-agents-standards.md +45 -45
- package/framework/rules/dotnet-templates.md +86 -86
- package/framework/rules/frontend-standards.md +13 -13
- package/framework/rules/infrastructure-standards.md +27 -27
- package/framework/rules/neon-standards.md +25 -25
- package/framework/rules/nextjs-standards.md +20 -20
- package/framework/rules/nextjs-templates.md +40 -40
- package/framework/schemas/feature.schema.json +128 -0
- package/framework/skills/core/create-umbraco-lp/SKILL.md +1 -1
- package/framework/skills/core/migrate-lp-to-umbraco/SKILL.md +1 -1
- package/framework/skills/core/morph-apply/SKILL.md +23 -10
- package/framework/skills/core/morph-brainstorming/SKILL.md +1 -1
- package/framework/skills/core/morph-eval/SKILL.md +3 -6
- package/framework/skills/core/morph-implement/SKILL.md +28 -15
- package/framework/skills/core/morph-plan/SKILL.md +1 -1
- package/framework/skills/core/morph-proposal/SKILL.md +2 -2
- package/framework/skills/core/morph-review/SKILL.md +2 -6
- package/framework/skills/core/morph-stack-scan/SKILL.md +1 -1
- package/framework/skills/core/morph-standards/SKILL.md +1 -1
- package/framework/standards/ai-agents/agent-session.md +160 -160
- package/framework/standards/ai-agents/batching.md +193 -193
- package/framework/standards/ai-agents/context-providers.md +188 -188
- package/framework/standards/ai-agents/mcp-server.md +250 -250
- package/framework/standards/ai-agents/mcp-tools.md +197 -197
- package/framework/standards/ai-agents/middleware-patterns.md +207 -207
- package/framework/standards/ai-agents/modalities-image-gen.md +173 -173
- package/framework/standards/ai-agents/modalities-speech-to-text.md +171 -171
- package/framework/standards/ai-agents/modalities-text-to-speech.md +181 -181
- package/framework/standards/ai-agents/modalities-vision.md +201 -201
- package/framework/standards/ai-agents/multi-agent-patterns.md +155 -155
- package/framework/standards/ai-agents/production.md +275 -275
- package/framework/standards/ai-agents/prompts-in-db.md +214 -214
- package/framework/standards/ai-agents/providers/model-registry.md +158 -158
- package/framework/standards/ai-agents/service-tier-flex.md +135 -135
- package/framework/standards/ai-agents/structured-output.md +249 -249
- package/framework/standards/ai-agents/sweet-spot.md +109 -109
- package/framework/templates/.idea/morph-templates.xml +92 -0
- package/framework/templates/.vscode/morph-templates.code-snippets +186 -0
- package/framework/templates/IDE-SNIPPETS.md +262 -262
- package/framework/templates/code/dotnet/abstractions/api-endpoint.cs +7 -7
- package/framework/templates/code/dotnet/ai-agents/AgentBootstrap.cs.template +39 -39
- package/framework/templates/code/dotnet/ai-agents/EmbeddingService.cs.template +68 -68
- package/framework/templates/code/dotnet/ai-agents/ModelRegistry.cs.template +117 -117
- package/framework/templates/code/dotnet/ai-agents/PromptRepository.cs.template +95 -95
- package/framework/templates/code/dotnet/ai-agents/ResilientToolMiddleware.cs.template +61 -61
- package/framework/templates/code/dotnet/ai-agents/VectorSearchTool.cs.template +107 -107
- package/framework/templates/code/dotnet/ai-agents/model-registry.json.template +58 -58
- package/framework/templates/code/dotnet/contracts/contracts-vsa.cs +281 -281
- package/framework/templates/code/dotnet/database/migration.cs +83 -83
- package/framework/templates/code/dotnet/feature/endpoint.cs.hbs +21 -21
- package/framework/templates/code/dotnet/feature/request.cs.hbs +4 -4
- package/framework/templates/code/dotnet/feature/response.cs.hbs +4 -4
- package/framework/templates/code/dotnet/feature/validator.cs.hbs +15 -15
- package/framework/templates/code/sql/ai-agents/agent-prompts-migration.sql.template +58 -58
- package/framework/templates/code/sql/ai-agents/pgvector-embeddings-migration.sql.template +91 -91
- package/framework/templates/code/typescript/contracts.ts +167 -167
- package/framework/templates/docs/clarifications.md +253 -253
- package/framework/templates/docs/schema-analysis.md +119 -119
- package/framework/templates/docs/ui-components.md +52 -52
- package/framework/templates/docs/ui-design-system.md +76 -76
- package/framework/templates/docs/ui-flows.md +167 -167
- package/framework/templates/docs/ui-mockups.md +98 -98
- package/framework/templates/feature/decisions.md +122 -122
- package/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs +43 -43
- package/framework/templates/frontend/nextjs/client-component.tsx.hbs +26 -26
- package/framework/templates/frontend/nextjs/env.mjs.hbs +32 -32
- package/framework/templates/frontend/nextjs/feature-form.tsx.hbs +56 -56
- package/framework/templates/frontend/nextjs/page.tsx.hbs +22 -22
- package/framework/templates/frontend/nextjs/tsconfig.json.hbs +26 -26
- package/framework/templates/frontend/nextjs/use-feature.ts.hbs +54 -54
- package/framework/templates/infrastructure/docker/Dockerfile.template +58 -58
- package/framework/templates/infrastructure/docker/docker-compose.template.yml +50 -50
- package/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +38 -38
- package/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +48 -48
- package/framework/templates/infrastructure/github/README.md +56 -56
- package/framework/templates/infrastructure/github/actions/docker-build-push/action.yml.hbs +45 -45
- package/framework/templates/infrastructure/github/actions/health-check/action.yml.hbs +27 -27
- package/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs +59 -59
- package/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs +39 -39
- package/framework/templates/integrations/asaas-client.cs +387 -387
- package/framework/templates/integrations/asaas-webhook.cs +351 -351
- package/framework/templates/meta-prompts/fusion/fusion-agent.md +76 -76
- package/framework/templates/meta-prompts/fusion/fusion-aggregator.md +100 -100
- package/framework/templates/meta-prompts/parallel-workers/parallel-coordinator.md +113 -113
- package/framework/templates/meta-prompts/validators/pre-commit-validator.md +95 -95
- package/framework/templates/project/validate.js +120 -120
- package/framework/templates/state.template.json +17 -17
- package/framework/templates/ui/design-system.css +226 -226
- package/package.json +1 -1
- package/src/commands/dashboard/dashboard.js +53 -53
- package/src/commands/index.js +13 -13
- package/src/commands/mcp/mcp-setup.js +519 -519
- package/src/commands/project/checkpoint.js +209 -209
- package/src/commands/project/doctor.js +23 -18
- package/src/commands/project/update.js +16 -9
- package/src/commands/state/create.js +58 -0
- package/src/commands/state/gate-decision.js +99 -0
- package/src/core/state/phase-state-machine.js +197 -197
- package/src/core/state/state-manager.js +55 -0
- package/src/core/templates/template-renderer.js +477 -477
- package/src/dashboard/app/components/DetailPanel.jsx +11 -11
- package/src/dashboard/app/components/FlowGraph.jsx +17 -17
- package/src/dashboard/app/components/SearchFilter.jsx +22 -22
- package/src/dashboard/app/hooks/useDetailPanel.js +15 -15
- package/src/dashboard/app/main.jsx +13 -13
- package/src/dashboard/app/pages/AgentMap.jsx +370 -370
- package/src/dashboard/app/pages/HookInspector.jsx +418 -418
- package/src/dashboard/app/pages/LiveState.jsx +239 -239
- package/src/dashboard/app/pages/PhasePipeline.jsx +408 -408
- package/src/dashboard/app/pages/RulesMap.jsx +273 -273
- package/src/dashboard/app/pages/SkillsLibrary.jsx +366 -366
- package/src/dashboard/app/pages/Standards.jsx +332 -332
- package/src/dashboard/app/styles/index.css +47 -47
- package/src/dashboard/index.html +12 -12
- package/src/dashboard/package.json +24 -24
- package/src/dashboard/scanner/hooks-scanner.js +41 -41
- package/src/dashboard/scanner/phases-scanner.js +15 -15
- package/src/dashboard/scanner/rubrics-scanner.js +12 -12
- package/src/dashboard/scanner/rules-scanner.js +37 -37
- package/src/dashboard/scanner/skills-scanner.js +43 -43
- package/src/dashboard/scanner/squads-scanner.js +13 -13
- package/src/dashboard/scanner/standards-scanner.js +26 -26
- package/src/dashboard/vite-plugin-morph-data.js +17 -17
- package/src/dashboard/vite.config.js +24 -24
- package/src/lib/agents/metrics-aggregator.js +56 -56
- package/src/lib/agents/metrics-calculator.js +125 -125
- package/src/lib/agents/output-collector.js +73 -73
- package/src/lib/detectors/claude-config-detector.js +152 -152
- package/src/lib/detectors/design-system-detector.js +231 -231
- package/src/lib/detectors/index.js +217 -217
- package/src/lib/generators/architecture-scanner.js +639 -639
- package/src/lib/generators/design-system-generator.js +508 -508
- package/src/lib/generators/index.js +13 -13
- package/src/lib/generators/settings-generator.js +209 -209
- package/src/lib/hooks/hook-executor.js +167 -167
- package/src/lib/installers/mcp-installer.js +719 -719
- package/src/lib/tasks/task-classifier.js +30 -30
- package/src/lib/tasks/task-parser.js +209 -209
- package/src/lib/tasks/test-runner.js +81 -81
- package/src/lib/validators/architecture/architecture-validator.js +259 -259
- package/src/lib/validators/checkpoint-persistence.js +39 -39
- package/src/lib/validators/contracts/contract-compliance-validator.js +274 -274
- package/src/lib/validators/css/css-validator.js +340 -340
- package/src/lib/validators/packages/package-validator.js +347 -347
- package/src/lib/validators/shared/emit-validator-dispatch.js +14 -14
- package/src/lib/validators/shared/issue-counter.js +14 -14
- package/src/lib/validators/validation-runner.js +349 -349
- package/src/scripts/setup-infra.js +385 -383
- package/src/utils/agent-id-mapper.js +11 -11
- package/src/utils/agents-installer.js +25 -10
- package/src/utils/banner.js +37 -4
- package/src/utils/claude-settings-manager.js +300 -300
- package/src/utils/hooks-installer.js +32 -4
- package/src/utils/skills-installer.js +174 -172
|
@@ -19,6 +19,11 @@ export const VALID_TASK_EFFORT = ['S', 'M', 'L', 'XL'];
|
|
|
19
19
|
* @param {object} doc - parsed tasks.json
|
|
20
20
|
* @returns {{ valid: boolean, errors: string[] }}
|
|
21
21
|
*/
|
|
22
|
+
/** Human-readable type name for error messages ('array', not 'object'). */
|
|
23
|
+
function typeName(value) {
|
|
24
|
+
return Array.isArray(value) ? 'array' : typeof value;
|
|
25
|
+
}
|
|
26
|
+
|
|
22
27
|
export function validateTasksDoc(doc) {
|
|
23
28
|
if (!doc || typeof doc !== 'object' || !Array.isArray(doc.tasks)) {
|
|
24
29
|
return { valid: false, errors: ['tasks.json must be an object with a tasks[] array'] };
|
|
@@ -33,6 +38,23 @@ export function validateTasksDoc(doc) {
|
|
|
33
38
|
if (task?.effort !== undefined && !VALID_TASK_EFFORT.includes(task.effort)) {
|
|
34
39
|
errors.push(`task '${id}': invalid effort '${task.effort}' (valid: ${VALID_TASK_EFFORT.join(', ')})`);
|
|
35
40
|
}
|
|
41
|
+
// Mutable-field type checks with the exact field/value in the message —
|
|
42
|
+
// a malformed notes/outputs used to surface as the misleading generic
|
|
43
|
+
// "notes is empty" downstream (MORPH_GHLBrain 2026-07-11).
|
|
44
|
+
if (task?.notes !== undefined && typeof task.notes !== 'string') {
|
|
45
|
+
errors.push(`task '${id}': 'notes' must be a string (got ${typeName(task.notes)})`);
|
|
46
|
+
}
|
|
47
|
+
if (task?.outputs !== undefined) {
|
|
48
|
+
if (!Array.isArray(task.outputs)) {
|
|
49
|
+
errors.push(`task '${id}': 'outputs' must be an array of path strings (got ${typeName(task.outputs)})`);
|
|
50
|
+
} else {
|
|
51
|
+
task.outputs.forEach((entry, i) => {
|
|
52
|
+
if (typeof entry !== 'string') {
|
|
53
|
+
errors.push(`task '${id}': outputs[${i}] must be a string path (got ${typeName(entry)})`);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
36
58
|
}
|
|
37
59
|
return { valid: errors.length === 0, errors };
|
|
38
60
|
}
|
|
@@ -47,6 +69,12 @@ export function validateTasksDoc(doc) {
|
|
|
47
69
|
* @param {object} newDoc - parsed proposed tasks.json
|
|
48
70
|
* @returns {string[]} human-readable violation messages (empty = OK)
|
|
49
71
|
*/
|
|
72
|
+
/** Compact outputs rendering for messages, capped so huge arrays stay readable. */
|
|
73
|
+
function fmtOutputs(outputs) {
|
|
74
|
+
const s = JSON.stringify(outputs ?? []);
|
|
75
|
+
return s.length > 120 ? s.slice(0, 117) + '...' : s;
|
|
76
|
+
}
|
|
77
|
+
|
|
50
78
|
export function outputsDivergenceViolations(oldDoc, newDoc) {
|
|
51
79
|
const violations = [];
|
|
52
80
|
const oldById = new Map((oldDoc?.tasks ?? []).map(t => [t.id, t]));
|
|
@@ -56,13 +84,28 @@ export function outputsDivergenceViolations(oldDoc, newDoc) {
|
|
|
56
84
|
if (!old) continue;
|
|
57
85
|
const outputsChanged =
|
|
58
86
|
JSON.stringify(old.outputs ?? []) !== JSON.stringify(task.outputs ?? []);
|
|
59
|
-
|
|
60
|
-
|
|
87
|
+
if (!outputsChanged) continue;
|
|
88
|
+
|
|
89
|
+
// A filled string note explains the divergence — done.
|
|
90
|
+
if (typeof task.notes === 'string' && task.notes.trim().length > 0) continue;
|
|
91
|
+
|
|
92
|
+
// Root-cause specific messages: a malformed notes value is a DIFFERENT
|
|
93
|
+
// failure than a missing one — claiming "notes is empty" when the agent
|
|
94
|
+
// just wrote an array reads as a false positive and burns a retry cycle.
|
|
95
|
+
if (task.notes !== undefined && typeof task.notes !== 'string') {
|
|
61
96
|
violations.push(
|
|
62
|
-
`task '${task.id}': outputs diverged from the plan
|
|
63
|
-
`
|
|
97
|
+
`task '${task.id}': outputs diverged from the plan and 'notes' is not a string ` +
|
|
98
|
+
`(got ${typeName(task.notes)}) — write the explanation as a single string in 'notes'`
|
|
64
99
|
);
|
|
100
|
+
continue;
|
|
65
101
|
}
|
|
102
|
+
|
|
103
|
+
violations.push(
|
|
104
|
+
`task '${task.id}': outputs diverged from the plan ` +
|
|
105
|
+
`(${fmtOutputs(old.outputs)} → ${fmtOutputs(task.outputs)}) but 'notes' is empty — ` +
|
|
106
|
+
`record why in 'notes' in the same edit. ` +
|
|
107
|
+
`Deletions and annotations belong in 'notes', not in 'outputs' (outputs = produced paths only).`
|
|
108
|
+
);
|
|
66
109
|
}
|
|
67
110
|
return violations;
|
|
68
111
|
}
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
{
|
|
2
|
-
"id": "backend",
|
|
3
|
-
"version": "1.1.0",
|
|
4
|
-
"description": "Backend-focused rubric. Higher weight on architecture, security, and package health. Deterministic-validator rubric — approve threshold aligned to the single bar 9 from MORPH.md §0.",
|
|
5
|
-
"categories": {
|
|
6
|
-
"functionality": {
|
|
7
|
-
"weight": 0.25,
|
|
8
|
-
"validators": ["contract-compliance"],
|
|
9
|
-
"description": "Core feature correctness and contract compliance"
|
|
10
|
-
},
|
|
11
|
-
"code_quality": {
|
|
12
|
-
"weight": 0.25,
|
|
13
|
-
"validators": ["architecture"],
|
|
14
|
-
"description": "Architecture patterns, dependency direction, and code structure"
|
|
15
|
-
},
|
|
16
|
-
"design_ui": {
|
|
17
|
-
"weight": 0.05,
|
|
18
|
-
"validators": ["design-system", "css", "contrast", "nextjs-component"],
|
|
19
|
-
"description": "Design system compliance (minimal weight for backend projects)"
|
|
20
|
-
},
|
|
21
|
-
"security": {
|
|
22
|
-
"weight": 0.15,
|
|
23
|
-
"validators": [],
|
|
24
|
-
"description": "Security posture (agent-evaluated, no automated validator)"
|
|
25
|
-
},
|
|
26
|
-
"packages": {
|
|
27
|
-
"weight": 0.20,
|
|
28
|
-
"validators": ["packages"],
|
|
29
|
-
"description": "Dependency health, version compatibility, and deprecated packages"
|
|
30
|
-
},
|
|
31
|
-
"maf_compliance": {
|
|
32
|
-
"weight": 0.10,
|
|
33
|
-
"validators": [],
|
|
34
|
-
"description": "MAF agent compliance (agent-evaluated, applies only when the feature touches AI agents): Microsoft.Agents.AI GA packages used; Model Registry alias referenced not hardcoded models; structured output for pipelined agents; prompts from DB not hardcoded; no Semantic Kernel; no hosted agent services."
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
"thresholds": {
|
|
38
|
-
"approve": 9.0,
|
|
39
|
-
"retry": 6.0
|
|
40
|
-
}
|
|
41
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"id": "backend",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "Backend-focused rubric. Higher weight on architecture, security, and package health. Deterministic-validator rubric — approve threshold aligned to the single bar 9 from MORPH.md §0.",
|
|
5
|
+
"categories": {
|
|
6
|
+
"functionality": {
|
|
7
|
+
"weight": 0.25,
|
|
8
|
+
"validators": ["contract-compliance"],
|
|
9
|
+
"description": "Core feature correctness and contract compliance"
|
|
10
|
+
},
|
|
11
|
+
"code_quality": {
|
|
12
|
+
"weight": 0.25,
|
|
13
|
+
"validators": ["architecture"],
|
|
14
|
+
"description": "Architecture patterns, dependency direction, and code structure"
|
|
15
|
+
},
|
|
16
|
+
"design_ui": {
|
|
17
|
+
"weight": 0.05,
|
|
18
|
+
"validators": ["design-system", "css", "contrast", "nextjs-component"],
|
|
19
|
+
"description": "Design system compliance (minimal weight for backend projects)"
|
|
20
|
+
},
|
|
21
|
+
"security": {
|
|
22
|
+
"weight": 0.15,
|
|
23
|
+
"validators": [],
|
|
24
|
+
"description": "Security posture (agent-evaluated, no automated validator)"
|
|
25
|
+
},
|
|
26
|
+
"packages": {
|
|
27
|
+
"weight": 0.20,
|
|
28
|
+
"validators": ["packages"],
|
|
29
|
+
"description": "Dependency health, version compatibility, and deprecated packages"
|
|
30
|
+
},
|
|
31
|
+
"maf_compliance": {
|
|
32
|
+
"weight": 0.10,
|
|
33
|
+
"validators": [],
|
|
34
|
+
"description": "MAF agent compliance (agent-evaluated, applies only when the feature touches AI agents): Microsoft.Agents.AI GA packages used; Model Registry alias referenced not hardcoded models; structured output for pipelined agents; prompts from DB not hardcoded; no Semantic Kernel; no hosted agent services."
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"thresholds": {
|
|
38
|
+
"approve": 9.0,
|
|
39
|
+
"retry": 6.0
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
---
|
|
2
|
-
paths:
|
|
3
|
-
- "**/Agents/**"
|
|
4
|
-
- "**/agents/**"
|
|
5
|
-
- "**/*Agent*.cs"
|
|
6
|
-
stacks:
|
|
7
|
-
- dotnet
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Microsoft Agent Framework Standards
|
|
11
|
-
|
|
12
|
-
> **Layer 0/1 — auto-carregados.** São os standards core: aplicam-se a praticamente todo
|
|
13
|
-
> agente MAF. Carregue-os sempre que tocar código de agentes.
|
|
14
|
-
|
|
15
|
-
@.morph/framework/standards/ai-agents/setup.md
|
|
16
|
-
@.morph/framework/standards/ai-agents/sweet-spot.md
|
|
17
|
-
@.morph/framework/standards/ai-agents/providers/model-registry.md
|
|
18
|
-
@.morph/framework/standards/ai-agents/structured-output.md
|
|
19
|
-
@.morph/framework/standards/ai-agents/multi-agent-patterns.md
|
|
20
|
-
@.morph/framework/standards/ai-agents/prompts-in-db.md
|
|
21
|
-
@.morph/framework/standards/ai-agents/rag-custom-pgvector.md
|
|
22
|
-
@.morph/framework/standards/ai-agents/middleware-patterns.md
|
|
23
|
-
@.morph/framework/standards/ai-agents/workflows.md
|
|
24
|
-
@.morph/framework/standards/ai-agents/production.md
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
> **Layer 2 — sob demanda (NÃO auto-carregados).** São standards de modalidade, otimização e
|
|
29
|
-
> MCP: relevantes apenas quando a feature usa especificamente esse recurso. Carregue via
|
|
30
|
-
> `morph-standards` quando uma keyword corresponder — manter fora do auto-load preserva o
|
|
31
|
-
> context window para o trabalho que importa.
|
|
32
|
-
|
|
33
|
-
| Standard | Carregue quando a feature envolve |
|
|
34
|
-
|----------|-----------------------------------|
|
|
35
|
-
| `ai-agents/modalities-vision.md` | imagem → texto (OCR, análise de documento, visão) |
|
|
36
|
-
| `ai-agents/modalities-image-gen.md` | texto → imagem (geração de mockups, posts, assets) |
|
|
37
|
-
| `ai-agents/modalities-speech-to-text.md` | áudio → texto (transcrição, legendagem) |
|
|
38
|
-
| `ai-agents/modalities-text-to-speech.md` | texto → áudio (síntese de voz) |
|
|
39
|
-
| `ai-agents/batching.md` | processar N prompts independentes em lote (Batch API) |
|
|
40
|
-
| `ai-agents/service-tier-flex.md` | otimização de custo em jobs assíncronos (tier flex) |
|
|
41
|
-
| `ai-agents/agent-session.md` | agentes conversacionais com histórico/reducers |
|
|
42
|
-
| `ai-agents/context-providers.md` | injeção dinâmica de contexto (`AIContextProvider`) |
|
|
43
|
-
| `ai-agents/mcp-tools.md` | agente MAF consome um MCP server externo |
|
|
44
|
-
| `ai-agents/mcp-server.md` | projeto expõe capacidades como MCP server |
|
|
45
|
-
| `integration/mcp/mcp-tools.md` | integração MCP cross-domain (fora do escopo MAF) |
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "**/Agents/**"
|
|
4
|
+
- "**/agents/**"
|
|
5
|
+
- "**/*Agent*.cs"
|
|
6
|
+
stacks:
|
|
7
|
+
- dotnet
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Microsoft Agent Framework Standards
|
|
11
|
+
|
|
12
|
+
> **Layer 0/1 — auto-carregados.** São os standards core: aplicam-se a praticamente todo
|
|
13
|
+
> agente MAF. Carregue-os sempre que tocar código de agentes.
|
|
14
|
+
|
|
15
|
+
@.morph/framework/standards/ai-agents/setup.md
|
|
16
|
+
@.morph/framework/standards/ai-agents/sweet-spot.md
|
|
17
|
+
@.morph/framework/standards/ai-agents/providers/model-registry.md
|
|
18
|
+
@.morph/framework/standards/ai-agents/structured-output.md
|
|
19
|
+
@.morph/framework/standards/ai-agents/multi-agent-patterns.md
|
|
20
|
+
@.morph/framework/standards/ai-agents/prompts-in-db.md
|
|
21
|
+
@.morph/framework/standards/ai-agents/rag-custom-pgvector.md
|
|
22
|
+
@.morph/framework/standards/ai-agents/middleware-patterns.md
|
|
23
|
+
@.morph/framework/standards/ai-agents/workflows.md
|
|
24
|
+
@.morph/framework/standards/ai-agents/production.md
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
> **Layer 2 — sob demanda (NÃO auto-carregados).** São standards de modalidade, otimização e
|
|
29
|
+
> MCP: relevantes apenas quando a feature usa especificamente esse recurso. Carregue via
|
|
30
|
+
> `morph-standards` quando uma keyword corresponder — manter fora do auto-load preserva o
|
|
31
|
+
> context window para o trabalho que importa.
|
|
32
|
+
|
|
33
|
+
| Standard | Carregue quando a feature envolve |
|
|
34
|
+
|----------|-----------------------------------|
|
|
35
|
+
| `ai-agents/modalities-vision.md` | imagem → texto (OCR, análise de documento, visão) |
|
|
36
|
+
| `ai-agents/modalities-image-gen.md` | texto → imagem (geração de mockups, posts, assets) |
|
|
37
|
+
| `ai-agents/modalities-speech-to-text.md` | áudio → texto (transcrição, legendagem) |
|
|
38
|
+
| `ai-agents/modalities-text-to-speech.md` | texto → áudio (síntese de voz) |
|
|
39
|
+
| `ai-agents/batching.md` | processar N prompts independentes em lote (Batch API) |
|
|
40
|
+
| `ai-agents/service-tier-flex.md` | otimização de custo em jobs assíncronos (tier flex) |
|
|
41
|
+
| `ai-agents/agent-session.md` | agentes conversacionais com histórico/reducers |
|
|
42
|
+
| `ai-agents/context-providers.md` | injeção dinâmica de contexto (`AIContextProvider`) |
|
|
43
|
+
| `ai-agents/mcp-tools.md` | agente MAF consome um MCP server externo |
|
|
44
|
+
| `ai-agents/mcp-server.md` | projeto expõe capacidades como MCP server |
|
|
45
|
+
| `integration/mcp/mcp-tools.md` | integração MCP cross-domain (fora do escopo MAF) |
|
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
---
|
|
2
|
-
paths:
|
|
3
|
-
- "**/*.cs"
|
|
4
|
-
- "**/*.csproj"
|
|
5
|
-
stacks:
|
|
6
|
-
- dotnet
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# .NET Code Templates
|
|
10
|
-
|
|
11
|
-
When implementing .NET features, use these templates as reference patterns.
|
|
12
|
-
Read the template file to see the exact pattern, then generate code following it.
|
|
13
|
-
|
|
14
|
-
## Scaffold (preferred for new slices)
|
|
15
|
-
|
|
16
|
-
**Always use scaffold for new VSA slices — never create feature files manually.**
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
morph-spec scaffold dotnet <feature> <slice-name> [--namespace <ns>] [--dry-run]
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
Examples:
|
|
23
|
-
```bash
|
|
24
|
-
morph-spec scaffold dotnet book create-book
|
|
25
|
-
morph-spec scaffold dotnet book get-book-by-id
|
|
26
|
-
morph-spec scaffold dotnet book update-book
|
|
27
|
-
morph-spec scaffold dotnet book delete-book
|
|
28
|
-
morph-spec scaffold dotnet book get-all-books
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
Generates 7 files: endpoint, handler, request, response, validator + entity, errors (shared at feature level). Entity/errors auto-skipped if they already exist.
|
|
32
|
-
|
|
33
|
-
**Only use `template render` for individual files when adding to an existing slice.**
|
|
34
|
-
|
|
35
|
-
## VSA Feature Templates (Vertical Slice Architecture)
|
|
36
|
-
|
|
37
|
-
For each new feature slice, follow the patterns in these templates:
|
|
38
|
-
|
|
39
|
-
| Template | Path | Purpose |
|
|
40
|
-
|----------|------|---------|
|
|
41
|
-
| Endpoint | `.morph/framework/templates/code/dotnet/feature/endpoint.cs.hbs` | IApiEndpoint with MapEndpoint() |
|
|
42
|
-
| Handler | `.morph/framework/templates/code/dotnet/feature/handler.cs.hbs` | IHandler<TRequest, TResponse> |
|
|
43
|
-
| Request | `.morph/framework/templates/code/dotnet/feature/request.cs.hbs` | Sealed record DTO |
|
|
44
|
-
| Response | `.morph/framework/templates/code/dotnet/feature/response.cs.hbs` | Sealed record DTO |
|
|
45
|
-
| Validator | `.morph/framework/templates/code/dotnet/feature/validator.cs.hbs` | FluentValidation AbstractValidator |
|
|
46
|
-
| Entity | `.morph/framework/templates/code/dotnet/feature/entity.cs.hbs` | Domain entity |
|
|
47
|
-
| Errors | `.morph/framework/templates/code/dotnet/feature/errors.cs.hbs` | Error factory |
|
|
48
|
-
|
|
49
|
-
## Base Abstractions (read once per project setup)
|
|
50
|
-
|
|
51
|
-
| Template | Path | Purpose |
|
|
52
|
-
|----------|------|---------|
|
|
53
|
-
| IHandler | `.morph/framework/templates/code/dotnet/abstractions/handler.cs` | Handler interface |
|
|
54
|
-
| Result<T> | `.morph/framework/templates/code/dotnet/abstractions/result.cs` | Railway-oriented result |
|
|
55
|
-
| Error | `.morph/framework/templates/code/dotnet/abstractions/error.cs` | Error types |
|
|
56
|
-
| IApiEndpoint | `.morph/framework/templates/code/dotnet/abstractions/api-endpoint.cs` | Endpoint interface |
|
|
57
|
-
|
|
58
|
-
## Extensions & Pipeline (read once per project setup)
|
|
59
|
-
|
|
60
|
-
| Template | Path | Purpose |
|
|
61
|
-
|----------|------|---------|
|
|
62
|
-
| Handler Registration | `.morph/framework/templates/code/dotnet/extensions/handler-registration.cs` | Scrutor auto-discovery |
|
|
63
|
-
| Map Endpoints | `.morph/framework/templates/code/dotnet/extensions/map-endpoints.cs` | IApiEndpoint discovery |
|
|
64
|
-
| Result Extensions | `.morph/framework/templates/code/dotnet/extensions/result-extensions.cs` | Match() pattern |
|
|
65
|
-
| Database Config | `.morph/framework/templates/code/dotnet/extensions/database-extensions.cs` | EF Core + Npgsql |
|
|
66
|
-
| Health Checks | `.morph/framework/templates/code/dotnet/extensions/health-checks.cs` | Health endpoints |
|
|
67
|
-
| Validation Decorator | `.morph/framework/templates/code/dotnet/pipelines/validation-decorator.cs` | FluentValidation pipeline |
|
|
68
|
-
| Logging Decorator | `.morph/framework/templates/code/dotnet/pipelines/logging-decorator.cs` | Duration tracking |
|
|
69
|
-
| Exception Handler | `.morph/framework/templates/code/dotnet/exceptions/exception-handler.cs` | ProblemDetails |
|
|
70
|
-
| API Tags | `.morph/framework/templates/code/dotnet/constants/api-tags.cs` | Scalar/Swagger groups |
|
|
71
|
-
|
|
72
|
-
## Specialized Templates
|
|
73
|
-
|
|
74
|
-
| Template | Path | Purpose |
|
|
75
|
-
|----------|------|---------|
|
|
76
|
-
| Migration | `.morph/framework/templates/code/dotnet/database/migration.cs` | EF Core migration |
|
|
77
|
-
| Hangfire Job | `.morph/framework/templates/code/dotnet/jobs/job.cs` | Background job |
|
|
78
|
-
| MAF Agent | `.morph/framework/templates/code/dotnet/jobs/agent.cs` | MS Agent Framework |
|
|
79
|
-
| Unit Test | `.morph/framework/templates/code/dotnet/test.cs` | xUnit AAA test |
|
|
80
|
-
| Contracts VSA | `.morph/framework/templates/code/dotnet/contracts/contracts-vsa.cs` | Full slice contracts |
|
|
81
|
-
|
|
82
|
-
## Usage
|
|
83
|
-
|
|
84
|
-
1. **Read the template** to see the exact pattern
|
|
85
|
-
2. **Generate code following the same structure** (naming, namespaces, imports)
|
|
86
|
-
3. Or render via CLI: `morph-spec template render <id> <output> '<variables>'`
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "**/*.cs"
|
|
4
|
+
- "**/*.csproj"
|
|
5
|
+
stacks:
|
|
6
|
+
- dotnet
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# .NET Code Templates
|
|
10
|
+
|
|
11
|
+
When implementing .NET features, use these templates as reference patterns.
|
|
12
|
+
Read the template file to see the exact pattern, then generate code following it.
|
|
13
|
+
|
|
14
|
+
## Scaffold (preferred for new slices)
|
|
15
|
+
|
|
16
|
+
**Always use scaffold for new VSA slices — never create feature files manually.**
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
morph-spec scaffold dotnet <feature> <slice-name> [--namespace <ns>] [--dry-run]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Examples:
|
|
23
|
+
```bash
|
|
24
|
+
morph-spec scaffold dotnet book create-book
|
|
25
|
+
morph-spec scaffold dotnet book get-book-by-id
|
|
26
|
+
morph-spec scaffold dotnet book update-book
|
|
27
|
+
morph-spec scaffold dotnet book delete-book
|
|
28
|
+
morph-spec scaffold dotnet book get-all-books
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Generates 7 files: endpoint, handler, request, response, validator + entity, errors (shared at feature level). Entity/errors auto-skipped if they already exist.
|
|
32
|
+
|
|
33
|
+
**Only use `template render` for individual files when adding to an existing slice.**
|
|
34
|
+
|
|
35
|
+
## VSA Feature Templates (Vertical Slice Architecture)
|
|
36
|
+
|
|
37
|
+
For each new feature slice, follow the patterns in these templates:
|
|
38
|
+
|
|
39
|
+
| Template | Path | Purpose |
|
|
40
|
+
|----------|------|---------|
|
|
41
|
+
| Endpoint | `.morph/framework/templates/code/dotnet/feature/endpoint.cs.hbs` | IApiEndpoint with MapEndpoint() |
|
|
42
|
+
| Handler | `.morph/framework/templates/code/dotnet/feature/handler.cs.hbs` | IHandler<TRequest, TResponse> |
|
|
43
|
+
| Request | `.morph/framework/templates/code/dotnet/feature/request.cs.hbs` | Sealed record DTO |
|
|
44
|
+
| Response | `.morph/framework/templates/code/dotnet/feature/response.cs.hbs` | Sealed record DTO |
|
|
45
|
+
| Validator | `.morph/framework/templates/code/dotnet/feature/validator.cs.hbs` | FluentValidation AbstractValidator |
|
|
46
|
+
| Entity | `.morph/framework/templates/code/dotnet/feature/entity.cs.hbs` | Domain entity |
|
|
47
|
+
| Errors | `.morph/framework/templates/code/dotnet/feature/errors.cs.hbs` | Error factory |
|
|
48
|
+
|
|
49
|
+
## Base Abstractions (read once per project setup)
|
|
50
|
+
|
|
51
|
+
| Template | Path | Purpose |
|
|
52
|
+
|----------|------|---------|
|
|
53
|
+
| IHandler | `.morph/framework/templates/code/dotnet/abstractions/handler.cs` | Handler interface |
|
|
54
|
+
| Result<T> | `.morph/framework/templates/code/dotnet/abstractions/result.cs` | Railway-oriented result |
|
|
55
|
+
| Error | `.morph/framework/templates/code/dotnet/abstractions/error.cs` | Error types |
|
|
56
|
+
| IApiEndpoint | `.morph/framework/templates/code/dotnet/abstractions/api-endpoint.cs` | Endpoint interface |
|
|
57
|
+
|
|
58
|
+
## Extensions & Pipeline (read once per project setup)
|
|
59
|
+
|
|
60
|
+
| Template | Path | Purpose |
|
|
61
|
+
|----------|------|---------|
|
|
62
|
+
| Handler Registration | `.morph/framework/templates/code/dotnet/extensions/handler-registration.cs` | Scrutor auto-discovery |
|
|
63
|
+
| Map Endpoints | `.morph/framework/templates/code/dotnet/extensions/map-endpoints.cs` | IApiEndpoint discovery |
|
|
64
|
+
| Result Extensions | `.morph/framework/templates/code/dotnet/extensions/result-extensions.cs` | Match() pattern |
|
|
65
|
+
| Database Config | `.morph/framework/templates/code/dotnet/extensions/database-extensions.cs` | EF Core + Npgsql |
|
|
66
|
+
| Health Checks | `.morph/framework/templates/code/dotnet/extensions/health-checks.cs` | Health endpoints |
|
|
67
|
+
| Validation Decorator | `.morph/framework/templates/code/dotnet/pipelines/validation-decorator.cs` | FluentValidation pipeline |
|
|
68
|
+
| Logging Decorator | `.morph/framework/templates/code/dotnet/pipelines/logging-decorator.cs` | Duration tracking |
|
|
69
|
+
| Exception Handler | `.morph/framework/templates/code/dotnet/exceptions/exception-handler.cs` | ProblemDetails |
|
|
70
|
+
| API Tags | `.morph/framework/templates/code/dotnet/constants/api-tags.cs` | Scalar/Swagger groups |
|
|
71
|
+
|
|
72
|
+
## Specialized Templates
|
|
73
|
+
|
|
74
|
+
| Template | Path | Purpose |
|
|
75
|
+
|----------|------|---------|
|
|
76
|
+
| Migration | `.morph/framework/templates/code/dotnet/database/migration.cs` | EF Core migration |
|
|
77
|
+
| Hangfire Job | `.morph/framework/templates/code/dotnet/jobs/job.cs` | Background job |
|
|
78
|
+
| MAF Agent | `.morph/framework/templates/code/dotnet/jobs/agent.cs` | MS Agent Framework |
|
|
79
|
+
| Unit Test | `.morph/framework/templates/code/dotnet/test.cs` | xUnit AAA test |
|
|
80
|
+
| Contracts VSA | `.morph/framework/templates/code/dotnet/contracts/contracts-vsa.cs` | Full slice contracts |
|
|
81
|
+
|
|
82
|
+
## Usage
|
|
83
|
+
|
|
84
|
+
1. **Read the template** to see the exact pattern
|
|
85
|
+
2. **Generate code following the same structure** (naming, namespaces, imports)
|
|
86
|
+
3. Or render via CLI: `morph-spec template render <id> <output> '<variables>'`
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
---
|
|
2
|
-
paths:
|
|
3
|
-
- "**/*.tsx"
|
|
4
|
-
- "**/*.css"
|
|
5
|
-
- "**/*.scss"
|
|
6
|
-
stacks:
|
|
7
|
-
- nextjs
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Frontend Standards
|
|
11
|
-
|
|
12
|
-
@.morph/framework/standards/frontend/design-system/naming.md
|
|
13
|
-
@.morph/framework/standards/frontend/design-system/animations.md
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "**/*.tsx"
|
|
4
|
+
- "**/*.css"
|
|
5
|
+
- "**/*.scss"
|
|
6
|
+
stacks:
|
|
7
|
+
- nextjs
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Frontend Standards
|
|
11
|
+
|
|
12
|
+
@.morph/framework/standards/frontend/design-system/naming.md
|
|
13
|
+
@.morph/framework/standards/frontend/design-system/animations.md
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
---
|
|
2
|
-
paths:
|
|
3
|
-
- "**/Dockerfile*"
|
|
4
|
-
- "**/docker-compose*"
|
|
5
|
-
- "**/.github/**"
|
|
6
|
-
- "**/coolify*"
|
|
7
|
-
stacks:
|
|
8
|
-
- docker
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Infrastructure Standards
|
|
12
|
-
|
|
13
|
-
@.morph/framework/standards/infrastructure/docker/coolify-deploy.md
|
|
14
|
-
|
|
15
|
-
## Infrastructure Templates
|
|
16
|
-
|
|
17
|
-
| Template | Path | Purpose |
|
|
18
|
-
|----------|------|---------|
|
|
19
|
-
| .NET API Dockerfile | `.morph/framework/templates/infrastructure/docker/dockerfile-api.dockerfile` | Multi-stage .NET |
|
|
20
|
-
| Next.js Dockerfile | `.morph/framework/templates/infrastructure/docker/dockerfile-web.dockerfile` | Multi-stage Next.js |
|
|
21
|
-
| Docker Compose | `.morph/framework/templates/infrastructure/docker/docker-compose.template.yml` | Local dev env |
|
|
22
|
-
| Coolify Config | `.morph/framework/templates/infrastructure/docker/coolify.template.json` | Deployment config |
|
|
23
|
-
| .NET Build CI | `.morph/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs` | CI workflow |
|
|
24
|
-
| Docker Push CI | `.morph/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs` | Build & push |
|
|
25
|
-
| Deploy Coolify | `.morph/framework/templates/infrastructure/github/workflows/deploy-coolify.yml.hbs` | CD via SSH |
|
|
26
|
-
|
|
27
|
-
Read the template and adapt to your project structure.
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "**/Dockerfile*"
|
|
4
|
+
- "**/docker-compose*"
|
|
5
|
+
- "**/.github/**"
|
|
6
|
+
- "**/coolify*"
|
|
7
|
+
stacks:
|
|
8
|
+
- docker
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Infrastructure Standards
|
|
12
|
+
|
|
13
|
+
@.morph/framework/standards/infrastructure/docker/coolify-deploy.md
|
|
14
|
+
|
|
15
|
+
## Infrastructure Templates
|
|
16
|
+
|
|
17
|
+
| Template | Path | Purpose |
|
|
18
|
+
|----------|------|---------|
|
|
19
|
+
| .NET API Dockerfile | `.morph/framework/templates/infrastructure/docker/dockerfile-api.dockerfile` | Multi-stage .NET |
|
|
20
|
+
| Next.js Dockerfile | `.morph/framework/templates/infrastructure/docker/dockerfile-web.dockerfile` | Multi-stage Next.js |
|
|
21
|
+
| Docker Compose | `.morph/framework/templates/infrastructure/docker/docker-compose.template.yml` | Local dev env |
|
|
22
|
+
| Coolify Config | `.morph/framework/templates/infrastructure/docker/coolify.template.json` | Deployment config |
|
|
23
|
+
| .NET Build CI | `.morph/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs` | CI workflow |
|
|
24
|
+
| Docker Push CI | `.morph/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs` | Build & push |
|
|
25
|
+
| Deploy Coolify | `.morph/framework/templates/infrastructure/github/workflows/deploy-coolify.yml.hbs` | CD via SSH |
|
|
26
|
+
|
|
27
|
+
Read the template and adapt to your project structure.
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
---
|
|
2
|
-
paths:
|
|
3
|
-
- "**/neon/**"
|
|
4
|
-
- "**/database/**"
|
|
5
|
-
- "**/*Migration*.sql"
|
|
6
|
-
- "**/*migration*.sql"
|
|
7
|
-
stacks:
|
|
8
|
-
- neon
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Neon PostgreSQL Standards
|
|
12
|
-
|
|
13
|
-
@.morph/framework/standards/infrastructure/neon/neon-setup.md
|
|
14
|
-
@.morph/framework/standards/infrastructure/neon/neon-pgvector.md
|
|
15
|
-
@.morph/framework/standards/infrastructure/neon/neon-pgrag.md
|
|
16
|
-
@.morph/framework/standards/backend/integrations/neon-auth/neon-auth.md
|
|
17
|
-
|
|
18
|
-
## SQL Templates
|
|
19
|
-
|
|
20
|
-
| Template | Path | Purpose |
|
|
21
|
-
|----------|------|---------|
|
|
22
|
-
| PostgreSQL Migration | `.morph/framework/templates/code/sql/postgresql-migration.sql` | Database migration |
|
|
23
|
-
| PostgreSQL RLS Policy | `.morph/framework/templates/code/sql/postgresql-rls-policy.sql` | Row-level security |
|
|
24
|
-
|
|
25
|
-
Read the template and adapt to your project structure.
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "**/neon/**"
|
|
4
|
+
- "**/database/**"
|
|
5
|
+
- "**/*Migration*.sql"
|
|
6
|
+
- "**/*migration*.sql"
|
|
7
|
+
stacks:
|
|
8
|
+
- neon
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Neon PostgreSQL Standards
|
|
12
|
+
|
|
13
|
+
@.morph/framework/standards/infrastructure/neon/neon-setup.md
|
|
14
|
+
@.morph/framework/standards/infrastructure/neon/neon-pgvector.md
|
|
15
|
+
@.morph/framework/standards/infrastructure/neon/neon-pgrag.md
|
|
16
|
+
@.morph/framework/standards/backend/integrations/neon-auth/neon-auth.md
|
|
17
|
+
|
|
18
|
+
## SQL Templates
|
|
19
|
+
|
|
20
|
+
| Template | Path | Purpose |
|
|
21
|
+
|----------|------|---------|
|
|
22
|
+
| PostgreSQL Migration | `.morph/framework/templates/code/sql/postgresql-migration.sql` | Database migration |
|
|
23
|
+
| PostgreSQL RLS Policy | `.morph/framework/templates/code/sql/postgresql-rls-policy.sql` | Row-level security |
|
|
24
|
+
|
|
25
|
+
Read the template and adapt to your project structure.
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
---
|
|
2
|
-
paths:
|
|
3
|
-
- "**/*.tsx"
|
|
4
|
-
- "**/*.ts"
|
|
5
|
-
stacks:
|
|
6
|
-
- nextjs
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Next.js Standards
|
|
10
|
-
|
|
11
|
-
@.morph/framework/standards/frontend/nextjs/naming-conventions.md
|
|
12
|
-
@.morph/framework/standards/frontend/nextjs/project-structure.md
|
|
13
|
-
@.morph/framework/standards/frontend/nextjs/app-router.md
|
|
14
|
-
@.morph/framework/standards/frontend/nextjs/components.md
|
|
15
|
-
@.morph/framework/standards/frontend/nextjs/data-fetching.md
|
|
16
|
-
@.morph/framework/standards/frontend/nextjs/forms.md
|
|
17
|
-
@.morph/framework/standards/frontend/nextjs/state-management.md
|
|
18
|
-
@.morph/framework/standards/frontend/nextjs/testing.md
|
|
19
|
-
@.morph/framework/standards/frontend/nextjs/nextjs-patterns.md
|
|
20
|
-
@.morph/framework/standards/frontend/nextjs/motion-patterns.md
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "**/*.tsx"
|
|
4
|
+
- "**/*.ts"
|
|
5
|
+
stacks:
|
|
6
|
+
- nextjs
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Next.js Standards
|
|
10
|
+
|
|
11
|
+
@.morph/framework/standards/frontend/nextjs/naming-conventions.md
|
|
12
|
+
@.morph/framework/standards/frontend/nextjs/project-structure.md
|
|
13
|
+
@.morph/framework/standards/frontend/nextjs/app-router.md
|
|
14
|
+
@.morph/framework/standards/frontend/nextjs/components.md
|
|
15
|
+
@.morph/framework/standards/frontend/nextjs/data-fetching.md
|
|
16
|
+
@.morph/framework/standards/frontend/nextjs/forms.md
|
|
17
|
+
@.morph/framework/standards/frontend/nextjs/state-management.md
|
|
18
|
+
@.morph/framework/standards/frontend/nextjs/testing.md
|
|
19
|
+
@.morph/framework/standards/frontend/nextjs/nextjs-patterns.md
|
|
20
|
+
@.morph/framework/standards/frontend/nextjs/motion-patterns.md
|