@atlashub/smartstack-cli 1.37.0 → 2.0.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.
Files changed (99) hide show
  1. package/config/mcp-defaults.json +62 -0
  2. package/dist/index.js +57 -4
  3. package/dist/index.js.map +1 -1
  4. package/dist/mcp-entry.mjs +16984 -0
  5. package/dist/mcp-entry.mjs.map +1 -0
  6. package/package.json +14 -5
  7. package/templates/agents/gitflow/start.md +5 -4
  8. package/templates/agents/mcp-healthcheck.md +15 -13
  9. package/templates/mcp-scaffolding/component.tsx.hbs +298 -0
  10. package/templates/mcp-scaffolding/controller.cs.hbs +184 -0
  11. package/templates/mcp-scaffolding/entity-extension.cs.hbs +231 -0
  12. package/templates/mcp-scaffolding/frontend/api-client.ts.hbs +116 -0
  13. package/templates/mcp-scaffolding/frontend/nav-routes.ts.hbs +133 -0
  14. package/templates/mcp-scaffolding/frontend/routes.tsx.hbs +134 -0
  15. package/templates/mcp-scaffolding/migrations/seed-roles.cs.hbs +261 -0
  16. package/templates/mcp-scaffolding/service-extension.cs.hbs +53 -0
  17. package/templates/mcp-scaffolding/tests/controller.test.cs.hbs +413 -0
  18. package/templates/mcp-scaffolding/tests/entity.test.cs.hbs +239 -0
  19. package/templates/mcp-scaffolding/tests/repository.test.cs.hbs +441 -0
  20. package/templates/mcp-scaffolding/tests/security.test.cs.hbs +442 -0
  21. package/templates/mcp-scaffolding/tests/service.test.cs.hbs +390 -0
  22. package/templates/mcp-scaffolding/tests/validator.test.cs.hbs +428 -0
  23. package/templates/ralph/README.md +3 -3
  24. package/templates/ralph/ralph.config.yaml +2 -2
  25. package/templates/skills/admin/SKILL.md +42 -0
  26. package/templates/skills/business-analyse/_shared.md +24 -1
  27. package/templates/skills/business-analyse/questionnaire/01-context.md +4 -4
  28. package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +3 -3
  29. package/templates/skills/business-analyse/questionnaire/03-scope.md +4 -4
  30. package/templates/skills/business-analyse/questionnaire/04-data.md +7 -7
  31. package/templates/skills/business-analyse/questionnaire/05-integrations.md +1 -1
  32. package/templates/skills/business-analyse/questionnaire/06-security.md +3 -3
  33. package/templates/skills/business-analyse/questionnaire/07-ui.md +1 -1
  34. package/templates/skills/business-analyse/questionnaire/08-performance.md +3 -3
  35. package/templates/skills/business-analyse/questionnaire/09-constraints.md +4 -4
  36. package/templates/skills/business-analyse/questionnaire/10-documentation.md +2 -2
  37. package/templates/skills/business-analyse/questionnaire/11-data-lifecycle.md +2 -2
  38. package/templates/skills/business-analyse/questionnaire/12-migration.md +1 -1
  39. package/templates/skills/business-analyse/questionnaire/13-cross-module.md +2 -2
  40. package/templates/skills/business-analyse/steps/step-01-discover.md +50 -25
  41. package/templates/skills/business-analyse/steps/step-05-handoff.md +133 -34
  42. package/templates/skills/cc-agent/SKILL.md +129 -0
  43. package/templates/skills/cc-agent/references/agent-frontmatter.md +213 -0
  44. package/templates/skills/cc-agent/references/permission-modes.md +102 -0
  45. package/templates/skills/cc-agent/references/tools-reference.md +144 -0
  46. package/templates/skills/cc-agent/steps/step-00-init.md +134 -0
  47. package/templates/skills/cc-agent/steps/step-01-design.md +186 -0
  48. package/templates/skills/cc-agent/steps/step-02-generate.md +204 -0
  49. package/templates/skills/cc-agent/steps/step-03-validate.md +130 -0
  50. package/templates/skills/cc-agent/templates/agent-categorized.md +67 -0
  51. package/templates/skills/cc-agent/templates/agent-standalone.md +56 -0
  52. package/templates/skills/cc-agent/templates/agent-with-skills.md +94 -0
  53. package/templates/skills/cc-audit/SKILL.md +108 -0
  54. package/templates/skills/cc-audit/references/agent-checklist.md +91 -0
  55. package/templates/skills/cc-audit/references/hook-checklist.md +110 -0
  56. package/templates/skills/cc-audit/references/skill-checklist.md +70 -0
  57. package/templates/skills/cc-audit/steps/step-00-init.md +98 -0
  58. package/templates/skills/cc-audit/steps/step-01-scan.md +142 -0
  59. package/templates/skills/cc-audit/steps/step-02-analyze.md +158 -0
  60. package/templates/skills/cc-audit/steps/step-03-report.md +142 -0
  61. package/templates/skills/cc-skill/SKILL.md +134 -0
  62. package/templates/skills/cc-skill/references/best-practices.md +167 -0
  63. package/templates/skills/cc-skill/references/frontmatter-reference.md +182 -0
  64. package/templates/skills/cc-skill/references/skill-patterns.md +199 -0
  65. package/templates/skills/cc-skill/steps/step-00-init.md +119 -0
  66. package/templates/skills/cc-skill/steps/step-01-design.md +199 -0
  67. package/templates/skills/cc-skill/steps/step-02-generate.md +145 -0
  68. package/templates/skills/cc-skill/steps/step-03-steps.md +151 -0
  69. package/templates/skills/cc-skill/steps/step-04-validate.md +124 -0
  70. package/templates/skills/cc-skill/templates/skill-forked.md +85 -0
  71. package/templates/skills/cc-skill/templates/skill-progressive.md +102 -0
  72. package/templates/skills/cc-skill/templates/skill-simple.md +75 -0
  73. package/templates/skills/cc-skill/templates/step-template.md +82 -0
  74. package/templates/skills/check-version/SKILL.md +6 -0
  75. package/templates/skills/debug/SKILL.md +4 -0
  76. package/templates/skills/documentation/SKILL.md +1 -0
  77. package/templates/skills/efcore/SKILL.md +5 -0
  78. package/templates/skills/efcore/steps/db/step-deploy.md +26 -5
  79. package/templates/skills/efcore/steps/shared/step-00-init.md +21 -7
  80. package/templates/skills/explore/SKILL.md +28 -32
  81. package/templates/skills/feature-full/SKILL.md +1 -0
  82. package/templates/skills/gitflow/SKILL.md +8 -0
  83. package/templates/skills/gitflow/steps/step-start.md +45 -10
  84. package/templates/skills/mcp/SKILL.md +38 -18
  85. package/templates/skills/quick-search/SKILL.md +8 -1
  86. package/templates/skills/ralph-loop/SKILL.md +1 -1
  87. package/templates/skills/ralph-loop/steps/step-00-init.md +8 -68
  88. package/templates/skills/ralph-loop/steps/step-04-check.md +1 -1
  89. package/templates/skills/refactor/SKILL.md +1 -0
  90. package/templates/skills/review-code/SKILL.md +7 -1
  91. package/templates/skills/ui-components/SKILL.md +31 -438
  92. package/templates/skills/ui-components/accessibility.md +170 -0
  93. package/templates/skills/ui-components/patterns/data-table.md +39 -0
  94. package/templates/skills/ui-components/patterns/entity-card.md +77 -0
  95. package/templates/skills/ui-components/patterns/grid-layout.md +91 -0
  96. package/templates/skills/ui-components/patterns/kanban.md +43 -0
  97. package/templates/skills/ui-components/style-guide.md +86 -0
  98. package/templates/skills/utils/SKILL.md +1 -0
  99. package/templates/skills/validate/SKILL.md +1 -0
@@ -0,0 +1,261 @@
1
+ using Microsoft.EntityFrameworkCore.Migrations;
2
+
3
+ namespace SmartStack.Infrastructure.Data.Migrations.Core;
4
+
5
+ /// <summary>
6
+ /// Seed default RBAC roles for SmartStack
7
+ /// Generated on {{timestamp}}
8
+ ///
9
+ /// All default roles have Scope = 'Core' (protected, cannot be deleted by clients)
10
+ /// Default Roles (aligned with Microsoft Fabric):
11
+ /// - Admin: Full access (read, create, update, delete)
12
+ /// - Member: Can write data (read, create, update) + manage users (add, update permissions) - no delete users, cannot assign roles >= own role
13
+ /// - Contributor: Can write data (read, create, update) - no delete, no user management
14
+ /// - Viewer: Read-only access (read)
15
+ ///
16
+ /// Permission Matrix:
17
+ /// | Capability | Admin | Member | Contributor | Viewer |
18
+ /// |-------------------------|-------|--------|-------------|--------|
19
+ /// | Delete data | ✅ | ❌ | ❌ | ❌ |
20
+ /// | Delete users | ✅ | ❌ | ❌ | ❌ |
21
+ /// | Add/update users | ✅ | ✅ | ❌ | ❌ |
22
+ /// | Change permissions | ✅ | ✅* | ❌ | ❌ |
23
+ /// | Write data | ✅ | ✅ | ✅ | ❌ |
24
+ /// | Create items | ✅ | ✅ | ✅ | ❌ |
25
+ /// | Read data | ✅ | ✅ | ✅ | ✅ |
26
+ ///
27
+ /// * Member cannot assign roles >= own role
28
+ /// </summary>
29
+ public partial class {{migrationName}} : Migration
30
+ {
31
+ protected override void Up(MigrationBuilder migrationBuilder)
32
+ {
33
+ // ============================================================================
34
+ // DEFAULT ROLES SEED (Microsoft Fabric Model)
35
+ // ============================================================================
36
+ // These roles follow Microsoft Fabric RBAC conventions
37
+ // Permissions are customizable per module via NavRoute
38
+ // ============================================================================
39
+
40
+ // Admin Role - Full Access
41
+ migrationBuilder.Sql(@"
42
+ DECLARE @AdminRoleId UNIQUEIDENTIFIER = NEWID();
43
+
44
+ IF NOT EXISTS (SELECT 1 FROM core.auth_Roles WHERE Code = 'admin')
45
+ BEGIN
46
+ INSERT INTO core.auth_Roles (
47
+ Id,
48
+ Code,
49
+ Scope,
50
+ Name,
51
+ Description,
52
+ IsDeleted,
53
+ CreatedAt,
54
+ UpdatedAt
55
+ )
56
+ VALUES (
57
+ @AdminRoleId,
58
+ 'admin',
59
+ 'Core',
60
+ 'Admin',
61
+ 'Full access to all features (read, create, update, delete)',
62
+ 0,
63
+ GETUTCDATE(),
64
+ GETUTCDATE()
65
+ );
66
+
67
+ PRINT 'Role created: Admin (Scope: Core)';
68
+
69
+ -- Grant ALL permissions to Admin
70
+ INSERT INTO core.auth_RolePermissions (RoleId, PermissionId)
71
+ SELECT @AdminRoleId, Id
72
+ FROM core.auth_Permissions
73
+ WHERE IsDeleted = 0;
74
+
75
+ PRINT 'All permissions granted to Admin';
76
+ END
77
+ ");
78
+
79
+ // Member Role - Can Write and Manage Users (with restrictions)
80
+ migrationBuilder.Sql(@"
81
+ DECLARE @MemberRoleId UNIQUEIDENTIFIER = NEWID();
82
+
83
+ IF NOT EXISTS (SELECT 1 FROM core.auth_Roles WHERE Code = 'member')
84
+ BEGIN
85
+ INSERT INTO core.auth_Roles (
86
+ Id,
87
+ Code,
88
+ Scope,
89
+ Name,
90
+ Description,
91
+ IsDeleted,
92
+ CreatedAt,
93
+ UpdatedAt
94
+ )
95
+ VALUES (
96
+ @MemberRoleId,
97
+ 'member',
98
+ 'Core',
99
+ 'Member',
100
+ 'Can read, create, and update content + manage users (add, update) - no delete',
101
+ 0,
102
+ GETUTCDATE(),
103
+ GETUTCDATE()
104
+ );
105
+
106
+ PRINT 'Role created: Member (Scope: Core)';
107
+
108
+ -- Grant read, create, update permissions (excluding delete)
109
+ INSERT INTO core.auth_RolePermissions (RoleId, PermissionId)
110
+ SELECT @MemberRoleId, Id
111
+ FROM core.auth_Permissions
112
+ WHERE IsDeleted = 0
113
+ AND Code NOT LIKE '%.delete';
114
+
115
+ PRINT 'Read, create, update permissions granted to Member (including user management)';
116
+ PRINT 'Note: Business logic must enforce Member cannot assign roles >= own role';
117
+ END
118
+ ");
119
+
120
+ // Contributor Role - Can Write Content (no user management, no delete)
121
+ migrationBuilder.Sql(@"
122
+ DECLARE @ContributorRoleId UNIQUEIDENTIFIER = NEWID();
123
+
124
+ IF NOT EXISTS (SELECT 1 FROM core.auth_Roles WHERE Code = 'contributor')
125
+ BEGIN
126
+ INSERT INTO core.auth_Roles (
127
+ Id,
128
+ Code,
129
+ Scope,
130
+ Name,
131
+ Description,
132
+ IsDeleted,
133
+ CreatedAt,
134
+ UpdatedAt
135
+ )
136
+ VALUES (
137
+ @ContributorRoleId,
138
+ 'contributor',
139
+ 'Core',
140
+ 'Contributor',
141
+ 'Can read, create, and update content (no user management, no delete)',
142
+ 0,
143
+ GETUTCDATE(),
144
+ GETUTCDATE()
145
+ );
146
+
147
+ PRINT 'Role created: Contributor (Scope: Core)';
148
+
149
+ -- Grant read, create, update permissions (excluding delete and user management)
150
+ INSERT INTO core.auth_RolePermissions (RoleId, PermissionId)
151
+ SELECT @ContributorRoleId, Id
152
+ FROM core.auth_Permissions
153
+ WHERE IsDeleted = 0
154
+ AND Code NOT LIKE '%.delete'
155
+ AND Code NOT LIKE 'platform.administration.users.%'
156
+ AND Code NOT LIKE 'platform.administration.roles.%';
157
+
158
+ PRINT 'Read, create, update permissions granted to Contributor (excluding user management)';
159
+ END
160
+ ");
161
+
162
+ // Viewer Role - Read-Only Access
163
+ migrationBuilder.Sql(@"
164
+ DECLARE @ViewerRoleId UNIQUEIDENTIFIER = NEWID();
165
+
166
+ IF NOT EXISTS (SELECT 1 FROM core.auth_Roles WHERE Code = 'viewer')
167
+ BEGIN
168
+ INSERT INTO core.auth_Roles (
169
+ Id,
170
+ Code,
171
+ Scope,
172
+ Name,
173
+ Description,
174
+ IsDeleted,
175
+ CreatedAt,
176
+ UpdatedAt
177
+ )
178
+ VALUES (
179
+ @ViewerRoleId,
180
+ 'viewer',
181
+ 'Core',
182
+ 'Viewer',
183
+ 'Read-only access to all assigned features',
184
+ 0,
185
+ GETUTCDATE(),
186
+ GETUTCDATE()
187
+ );
188
+
189
+ PRINT 'Role created: Viewer (Scope: Core)';
190
+
191
+ -- Grant only read permissions
192
+ INSERT INTO core.auth_RolePermissions (RoleId, PermissionId)
193
+ SELECT @ViewerRoleId, Id
194
+ FROM core.auth_Permissions
195
+ WHERE IsDeleted = 0
196
+ AND Code LIKE '%.read';
197
+
198
+ PRINT 'Read permissions granted to Viewer';
199
+ END
200
+ ");
201
+
202
+ // ============================================================================
203
+ // SUMMARY
204
+ // ============================================================================
205
+ migrationBuilder.Sql(@"
206
+ DECLARE @RoleCount INT = (SELECT COUNT(*) FROM core.auth_Roles WHERE IsDeleted = 0);
207
+ DECLARE @PermissionCount INT = (SELECT COUNT(*) FROM core.auth_Permissions WHERE IsDeleted = 0);
208
+ DECLARE @RolePermissionCount INT = (SELECT COUNT(*) FROM core.auth_RolePermissions);
209
+
210
+ PRINT '========================================';
211
+ PRINT 'Default Roles Seed Complete (Fabric Model)';
212
+ PRINT 'Roles: ' + CAST(@RoleCount AS NVARCHAR(10));
213
+ PRINT 'Permissions: ' + CAST(@PermissionCount AS NVARCHAR(10));
214
+ PRINT 'Role-Permission Assignments: ' + CAST(@RolePermissionCount AS NVARCHAR(10));
215
+ PRINT '========================================';
216
+ PRINT '';
217
+ PRINT 'Permission Matrix:';
218
+ PRINT '| Capability | Admin | Member | Contributor | Viewer |';
219
+ PRINT '|-------------------------|-------|--------|-------------|--------|';
220
+ PRINT '| Delete data | ✅ | ❌ | ❌ | ❌ |';
221
+ PRINT '| Delete users | ✅ | ❌ | ❌ | ❌ |';
222
+ PRINT '| Add/update users | ✅ | ✅ | ❌ | ❌ |';
223
+ PRINT '| Change permissions | ✅ | ✅* | ❌ | ❌ |';
224
+ PRINT '| Write data | ✅ | ✅ | ✅ | ❌ |';
225
+ PRINT '| Create items | ✅ | ✅ | ✅ | ❌ |';
226
+ PRINT '| Read data | ✅ | ✅ | ✅ | ✅ |';
227
+ PRINT '';
228
+ PRINT '* Member cannot assign roles >= own role (enforced in business logic)';
229
+ PRINT '========================================';
230
+ ");
231
+ }
232
+
233
+ protected override void Down(MigrationBuilder migrationBuilder)
234
+ {
235
+ // ============================================================================
236
+ // ROLLBACK - Remove default roles
237
+ // ============================================================================
238
+ // WARNING: This will remove system roles and all associated permissions.
239
+ // User assignments to these roles will be orphaned.
240
+ // ============================================================================
241
+
242
+ // Remove role-permission assignments
243
+ migrationBuilder.Sql(@"
244
+ DELETE rp
245
+ FROM core.auth_RolePermissions rp
246
+ INNER JOIN core.auth_Roles r ON rp.RoleId = r.Id
247
+ WHERE r.Code IN ('admin', 'member', 'contributor', 'viewer');
248
+ ");
249
+
250
+ // Soft delete roles
251
+ migrationBuilder.Sql(@"
252
+ UPDATE core.auth_Roles
253
+ SET IsDeleted = 1, UpdatedAt = GETUTCDATE()
254
+ WHERE Code IN ('admin', 'member', 'contributor', 'viewer');
255
+ ");
256
+
257
+ migrationBuilder.Sql(@"
258
+ PRINT 'Default roles rollback complete';
259
+ ");
260
+ }
261
+ }
@@ -0,0 +1,53 @@
1
+ using System;
2
+ using System.Threading;
3
+ using System.Threading.Tasks;
4
+ using System.Collections.Generic;
5
+ using Microsoft.Extensions.Logging;
6
+
7
+ namespace {{namespace}};
8
+
9
+ /// <summary>
10
+ /// Interface for {{name}} service operations
11
+ /// </summary>
12
+ public interface I{{name}}Service
13
+ {
14
+ {{#each methods}}
15
+ /// <summary>
16
+ /// {{this}} operation
17
+ /// </summary>
18
+ Task<object> {{this}}(CancellationToken cancellationToken = default);
19
+
20
+ {{/each}}
21
+ }
22
+
23
+ /// <summary>
24
+ /// Implementation of {{name}} service
25
+ /// </summary>
26
+ public class {{name}}Service : I{{name}}Service
27
+ {
28
+ private readonly ILogger<{{name}}Service> _logger;
29
+
30
+ public {{name}}Service(ILogger<{{name}}Service> logger)
31
+ {
32
+ _logger = logger ?? throw new ArgumentNullException(nameof(logger));
33
+ }
34
+
35
+ {{#each methods}}
36
+ /// <inheritdoc />
37
+ public async Task<object> {{this}}(CancellationToken cancellationToken = default)
38
+ {
39
+ _logger.LogInformation("Executing {{this}} in {{../name}}Service");
40
+
41
+ // TODO: Implement {{this}} logic
42
+ await Task.CompletedTask;
43
+
44
+ throw new NotImplementedException("{{this}} is not yet implemented");
45
+ }
46
+
47
+ {{/each}}
48
+ }
49
+
50
+ // ============================================================================
51
+ // Registration (add to DependencyInjection.cs)
52
+ // ============================================================================
53
+ // services.AddScoped<I{{name}}Service, {{name}}Service>();