@polymorphism-tech/morph-spec 7.7.3 → 7.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- 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 +1 -1
- package/framework/MORPH.md +3 -2
- package/framework/agents.json +1 -1
- 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/scenarios/dotnet-crud.yaml +1 -1
- 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/rubrics/backend.json +41 -41
- package/framework/rules/ai-agents-standards.md +45 -45
- package/framework/rules/dotnet-templates.md +86 -87
- 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/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 +1 -1
- package/framework/skills/core/morph-brainstorming/SKILL.md +9 -5
- package/framework/skills/core/morph-eval/SKILL.md +1 -1
- package/framework/skills/core/morph-implement/SKILL.md +1 -1
- package/framework/skills/core/morph-plan/SKILL.md +11 -6
- package/framework/skills/core/morph-proposal/SKILL.md +1 -1
- package/framework/skills/core/morph-review/SKILL.md +13 -7
- package/framework/skills/core/morph-stack-scan/SKILL.md +5 -5
- package/framework/skills/core/morph-standards/SKILL.md +1 -1
- package/framework/standards/STANDARDS.json +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/standards/architecture/vertical-slice/vertical-slice.md +34 -35
- package/framework/standards/backend/api/validation.md +2 -2
- package/framework/standards/backend/dotnet/scrutor.md +1 -3
- package/framework/standards/backend/dotnet/vsa-handler-patterns.md +42 -37
- package/framework/standards/data/nosql/cache/redis.md +2 -2
- package/framework/templates/CLAUDE.md.core.template +1 -1
- package/framework/templates/IDE-SNIPPETS.md +262 -262
- package/framework/templates/README.md +0 -1
- package/framework/templates/REGISTRY.json +0 -21
- package/framework/templates/code/dotnet/abstractions/api-endpoint.cs +7 -7
- package/framework/templates/code/dotnet/abstractions/handler.cs +0 -3
- 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/constants/api-tags.cs +1 -1
- package/framework/templates/code/dotnet/contracts/contracts-vsa.cs +281 -282
- 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/handler.cs.hbs +23 -24
- 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/dotnet/jobs/job.cs +15 -15
- package/framework/templates/code/dotnet/test.cs +72 -101
- 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/update.js +7 -4
- package/src/core/state/phase-state-machine.js +197 -197
- 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 +383 -383
- package/src/utils/agent-id-mapper.js +11 -11
- package/src/utils/banner.js +52 -43
- package/src/utils/claude-settings-manager.js +300 -300
- package/src/utils/skills-installer.js +172 -172
- package/framework/templates/.idea/morph-templates.xml +0 -92
- package/framework/templates/.vscode/morph-templates.code-snippets +0 -186
- package/framework/templates/code/dotnet/backend/repository.cs +0 -141
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
// ============================================================
|
|
2
|
-
// REPOSITORY + UNIT OF WORK TEMPLATE (VSA Pattern)
|
|
3
|
-
// Generated by MORPH Framework
|
|
4
|
-
// ============================================================
|
|
5
|
-
|
|
6
|
-
using Microsoft.EntityFrameworkCore;
|
|
7
|
-
using {{pascalCase PROJECT_NAME}}.Database;
|
|
8
|
-
|
|
9
|
-
namespace {{pascalCase PROJECT_NAME}}.Repository;
|
|
10
|
-
|
|
11
|
-
// ============================================================
|
|
12
|
-
// IRepository<T> — Generic repository contract
|
|
13
|
-
// ============================================================
|
|
14
|
-
|
|
15
|
-
// Generic CRUD by key. For slice-specific queries (joins, projection, pagination),
|
|
16
|
-
// inject ApplicationDbContext directly into the handler and write LINQ in the slice —
|
|
17
|
-
// do NOT add query methods here, and do NOT use raw SQL.
|
|
18
|
-
public interface IRepository<T> where T : class
|
|
19
|
-
{
|
|
20
|
-
Task<IEnumerable<T>> GetAllAsync(CancellationToken cancellationToken = default);
|
|
21
|
-
Task<T?> GetByIdAsync(object id, CancellationToken cancellationToken = default);
|
|
22
|
-
Task<T> AddAsync(T entity, CancellationToken cancellationToken = default);
|
|
23
|
-
Task UpdateAsync(T entity, CancellationToken cancellationToken = default);
|
|
24
|
-
Task DeleteAsync(T entity, CancellationToken cancellationToken = default);
|
|
25
|
-
Task AddRangeAsync(IEnumerable<T> entities, CancellationToken cancellationToken = default);
|
|
26
|
-
void RemoveRange(IEnumerable<T> entities);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// ============================================================
|
|
30
|
-
// IUnitOfWork — Transaction boundary contract
|
|
31
|
-
// ============================================================
|
|
32
|
-
|
|
33
|
-
public interface IUnitOfWork
|
|
34
|
-
{
|
|
35
|
-
int Commit();
|
|
36
|
-
void Rollback();
|
|
37
|
-
Task<int> CommitAsync(CancellationToken cancellationToken = default);
|
|
38
|
-
Task RollbackAsync(CancellationToken cancellationToken = default);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// ============================================================
|
|
42
|
-
// Repository<T> — EF Core generic repository implementation
|
|
43
|
-
// ============================================================
|
|
44
|
-
|
|
45
|
-
public class Repository<T> : IRepository<T> where T : class
|
|
46
|
-
{
|
|
47
|
-
private readonly ApplicationDbContext _context;
|
|
48
|
-
private readonly DbSet<T> _dbSet;
|
|
49
|
-
|
|
50
|
-
public Repository(ApplicationDbContext context)
|
|
51
|
-
{
|
|
52
|
-
_context = context;
|
|
53
|
-
_dbSet = _context.Set<T>();
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
public async Task<IEnumerable<T>> GetAllAsync(CancellationToken cancellationToken = default)
|
|
57
|
-
{
|
|
58
|
-
return await _dbSet.ToListAsync(cancellationToken);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
public async Task<T?> GetByIdAsync(object id, CancellationToken cancellationToken = default)
|
|
62
|
-
{
|
|
63
|
-
return await _dbSet.FindAsync(new[] { id }, cancellationToken);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
public async Task<T> AddAsync(T entity, CancellationToken cancellationToken = default)
|
|
67
|
-
{
|
|
68
|
-
await _dbSet.AddAsync(entity, cancellationToken);
|
|
69
|
-
return entity;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
public Task UpdateAsync(T entity, CancellationToken cancellationToken = default)
|
|
73
|
-
{
|
|
74
|
-
_dbSet.Update(entity);
|
|
75
|
-
return Task.CompletedTask;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
public Task DeleteAsync(T entity, CancellationToken cancellationToken = default)
|
|
79
|
-
{
|
|
80
|
-
_dbSet.Remove(entity);
|
|
81
|
-
return Task.CompletedTask;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
public async Task AddRangeAsync(IEnumerable<T> entities, CancellationToken cancellationToken = default)
|
|
85
|
-
{
|
|
86
|
-
await _dbSet.AddRangeAsync(entities, cancellationToken);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
public void RemoveRange(IEnumerable<T> entities)
|
|
90
|
-
{
|
|
91
|
-
_dbSet.RemoveRange(entities);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
// ============================================================
|
|
96
|
-
// UnitOfWork — EF Core transaction management
|
|
97
|
-
// ============================================================
|
|
98
|
-
|
|
99
|
-
public class UnitOfWork : IUnitOfWork
|
|
100
|
-
{
|
|
101
|
-
private readonly ApplicationDbContext _dataContext;
|
|
102
|
-
|
|
103
|
-
public UnitOfWork(ApplicationDbContext dataContext)
|
|
104
|
-
{
|
|
105
|
-
_dataContext = dataContext;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
public int Commit()
|
|
109
|
-
{
|
|
110
|
-
return _dataContext.SaveChanges();
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
public async Task<int> CommitAsync(CancellationToken cancellationToken = default)
|
|
114
|
-
{
|
|
115
|
-
return await _dataContext.SaveChangesAsync(cancellationToken);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
public void Rollback()
|
|
119
|
-
{
|
|
120
|
-
_dataContext.Dispose();
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
public async Task RollbackAsync(CancellationToken cancellationToken = default)
|
|
124
|
-
{
|
|
125
|
-
await _dataContext.DisposeAsync();
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
// ============================================================
|
|
130
|
-
// DI REGISTRATION
|
|
131
|
-
// ============================================================
|
|
132
|
-
//
|
|
133
|
-
// In Program.cs or a DI extension method:
|
|
134
|
-
//
|
|
135
|
-
// builder.Services.AddDbContext<ApplicationDbContext>(options =>
|
|
136
|
-
// options.UseSqlServer(connectionString));
|
|
137
|
-
//
|
|
138
|
-
// builder.Services.AddScoped(typeof(IRepository<>), typeof(Repository<>));
|
|
139
|
-
// builder.Services.AddScoped<IUnitOfWork, UnitOfWork>();
|
|
140
|
-
//
|
|
141
|
-
// ============================================================
|