@shrkcrft/presets 0.1.0-alpha.7 → 0.1.0-alpha.8

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.
@@ -1,9 +1,9 @@
1
1
  import { WorkspaceProfile } from '@shrkcrft/workspace';
2
2
  import { definePreset } from "../define/define-preset.js";
3
3
  import { ANGULAR_PATH_APP, ANGULAR_PATH_COMPONENTS, ANGULAR_PATH_SERVICES, COMMON_AGENT_BRIEFING, COMMON_PATH_SERVICES, COMMON_PATH_TESTS, COMMON_PATH_UTILS, COMMON_PIPELINE_CONTEXT_ONLY, COMMON_PIPELINE_FEATURE_DEV, COMMON_PIPELINE_UNIT_TEST, COMMON_RULE_INTERFACE_PREFIX, COMMON_RULE_NO_LOGIC_CONSTRUCTORS, COMMON_RULE_ONE_EXPORT, COMMON_SAFETY_RULE, COMMON_TEMPLATE_SERVICE, COMMON_TEMPLATE_TEST, COMMON_TEMPLATE_UTILITY, GO_PATH_CMD, GO_PATH_INTERNAL, GO_PATH_PKG, JAVA_MAVEN_PATH_MAIN, JAVA_MAVEN_PATH_TESTS, NX_PATH_APPS, NX_PATH_LIBS, OVERVIEW_DOC, PYTHON_PATH_SRC, PYTHON_PATH_TESTS, RUST_PATH_SRC, RUST_PATH_TESTS, } from "./shared-snippets.js";
4
- import { R26_PRESETS } from "./r26-presets.js";
5
- import { R45_PRESETS } from "./r45-presets.js";
6
- import { R47_PRESETS } from "./r47-presets.js";
4
+ import { MULTI_STACK_PRESETS } from "./r26-presets.js";
5
+ import { UNIVERSAL_ADOPTION_PRESETS } from "./r45-presets.js";
6
+ import { CANONICAL_ALIAS_PRESETS } from "./r47-presets.js";
7
7
  import { ANGULAR_21_PRESETS } from "./angular21-presets.js";
8
8
  import { NEST_11_PRESETS } from "./nest11-presets.js";
9
9
  import { REACT_19_PRESETS } from "./react19-presets.js";
@@ -153,7 +153,7 @@ const ANGULAR_APP = definePreset({
153
153
  const NX_MONOREPO = definePreset({
154
154
  id: 'nx-monorepo',
155
155
  title: 'Nx monorepo',
156
- description: 'Conventions for Nx workspaces: layer order, public entrypoints, no relative cross-lib imports, affected build/test commands.',
156
+ description: 'Conventions for Nx workspaces: public entrypoints, no relative cross-lib imports, affected build/test commands.',
157
157
  tags: ['nx', 'monorepo'],
158
158
  appliesTo: [WorkspaceProfile.HasNx, WorkspaceProfile.IsMonorepo],
159
159
  weight: 8,
@@ -161,13 +161,13 @@ const NX_MONOREPO = definePreset({
161
161
  knowledge: [
162
162
  COMMON_AGENT_BRIEFING,
163
163
  `defineKnowledgeEntry({
164
- id: 'nx.layer-order',
165
- title: 'Nx layers: lower layers do not import higher',
164
+ id: 'nx.boundary-tags',
165
+ title: 'Respect Nx boundary tags',
166
166
  type: KnowledgeType.Rule,
167
167
  priority: KnowledgePriority.Critical,
168
168
  tags: ['nx', 'architecture'],
169
169
  appliesWhen: ['generate-code', 'refactor'],
170
- content: 'Respect the documented layer order. Lower layers must never import higher ones.',
170
+ content: 'Respect the boundary tags declared on each project (scope, type). The enforce-module-boundaries lint rule must stay green.',
171
171
  })`,
172
172
  `defineKnowledgeEntry({
173
173
  id: 'nx.public-entrypoints',
@@ -515,11 +515,11 @@ export const BUILTIN_PRESETS = Object.freeze([
515
515
  RUST_CRATE,
516
516
  POLYGLOT_MONOREPO,
517
517
  // Modern Angular, strict TypeScript, frontend/backend/testing variants
518
- ...R26_PRESETS,
518
+ ...MULTI_STACK_PRESETS,
519
519
  // Universal adoption: next-app, turborepo, package-workspace, clean-architecture-ts
520
- ...R45_PRESETS,
520
+ ...UNIVERSAL_ADOPTION_PRESETS,
521
521
  // Universal adoption top-5: nest-service, angular-app canonical aliases
522
- ...R47_PRESETS,
522
+ ...CANONICAL_ALIAS_PRESETS,
523
523
  // Angular 18 / 19 / 20 / 21 — signal queries, signal I/O, zoneless,
524
524
  // @if/@for/@defer/@let, resource() / httpResource(), inject(), no
525
525
  // NgModules. Weight 11-12 so the recommender prefers these over
@@ -14,10 +14,8 @@ export declare const ANGULAR_PERFORMANCE: IPreset;
14
14
  export declare const ANGULAR_TESTING: IPreset;
15
15
  export declare const ANGULAR_ACCESSIBILITY: IPreset;
16
16
  export declare const ANGULAR_SECURITY: IPreset;
17
- export declare const ANGULAR_PLUGIN_PLATFORM: IPreset;
18
17
  export declare const ANGULAR_ENTERPRISE_APP: IPreset;
19
18
  export declare const ANGULAR_LIBRARY: IPreset;
20
- export declare const ANGULAR_SMART_UI_PLATFORM: IPreset;
21
19
  export declare const VITEST_FOCUSED: IPreset;
22
20
  export declare const JEST_FOCUSED: IPreset;
23
21
  export declare const PLAYWRIGHT_FOCUSED: IPreset;
@@ -27,5 +25,5 @@ export declare const WEB_COMPONENT_LIBRARY: IPreset;
27
25
  export declare const NESTJS_SERVICE: IPreset;
28
26
  export declare const EXPRESS_SERVICE: IPreset;
29
27
  export declare const FASTIFY_SERVICE: IPreset;
30
- export declare const R26_PRESETS: readonly IPreset[];
28
+ export declare const MULTI_STACK_PRESETS: readonly IPreset[];
31
29
  //# sourceMappingURL=r26-presets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"r26-presets.d.ts","sourceRoot":"","sources":["../../src/builtin/r26-presets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAoDlD,eAAO,MAAM,iBAAiB,EAAE,OAe9B,CAAC;AAEH,eAAO,MAAM,yBAAyB,EAAE,OAgBtC,CAAC;AAEH,eAAO,MAAM,uBAAuB,EAAE,OAoBpC,CAAC;AAIH,eAAO,MAAM,iBAAiB,EAAE,OAgC9B,CAAC;AAEH,eAAO,MAAM,YAAY,EAAE,OAiBzB,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,OAiBxB,CAAC;AAIH,eAAO,MAAM,cAAc,EAAE,OAmC3B,CAAC;AAEH,eAAO,MAAM,qBAAqB,EAAE,OAelC,CAAC;AAEH,eAAO,MAAM,wBAAwB,EAAE,OAerC,CAAC;AAEH,eAAO,MAAM,6BAA6B,EAAE,OAe1C,CAAC;AAEH,eAAO,MAAM,+BAA+B,EAAE,OAe5C,CAAC;AAEH,eAAO,MAAM,mBAAmB,EAAE,OAehC,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,OAe5B,CAAC;AAEH,eAAO,MAAM,qBAAqB,EAAE,OAelC,CAAC;AAEH,eAAO,MAAM,gBAAgB,EAAE,OAe7B,CAAC;AAEH,eAAO,MAAM,uBAAuB,EAAE,OAepC,CAAC;AAEH,eAAO,MAAM,sBAAsB,EAAE,OASnC,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,OAS5B,CAAC;AAEH,eAAO,MAAM,yBAAyB,EAAE,OAStC,CAAC;AAIH,eAAO,MAAM,cAAc,EAAE,OAQ3B,CAAC;AAEH,eAAO,MAAM,YAAY,EAAE,OAQzB,CAAC;AAEH,eAAO,MAAM,kBAAkB,EAAE,OAO/B,CAAC;AAIH,eAAO,MAAM,gBAAgB,EAAE,OAS7B,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,OAS3B,CAAC;AAEH,eAAO,MAAM,qBAAqB,EAAE,OAQlC,CAAC;AAIH,eAAO,MAAM,cAAc,EAAE,OAS3B,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,OAS5B,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,OAS5B,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,SAAS,OAAO,EA6BxC,CAAC"}
1
+ {"version":3,"file":"r26-presets.d.ts","sourceRoot":"","sources":["../../src/builtin/r26-presets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAkDlD,eAAO,MAAM,iBAAiB,EAAE,OAe9B,CAAC;AAEH,eAAO,MAAM,yBAAyB,EAAE,OAgBtC,CAAC;AAEH,eAAO,MAAM,uBAAuB,EAAE,OAoBpC,CAAC;AAIH,eAAO,MAAM,iBAAiB,EAAE,OAgC9B,CAAC;AAEH,eAAO,MAAM,YAAY,EAAE,OAiBzB,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,OAiBxB,CAAC;AAIH,eAAO,MAAM,cAAc,EAAE,OAmC3B,CAAC;AAEH,eAAO,MAAM,qBAAqB,EAAE,OAelC,CAAC;AAEH,eAAO,MAAM,wBAAwB,EAAE,OAerC,CAAC;AAEH,eAAO,MAAM,6BAA6B,EAAE,OAe1C,CAAC;AAEH,eAAO,MAAM,+BAA+B,EAAE,OAe5C,CAAC;AAEH,eAAO,MAAM,mBAAmB,EAAE,OAehC,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,OAe5B,CAAC;AAEH,eAAO,MAAM,qBAAqB,EAAE,OAelC,CAAC;AAEH,eAAO,MAAM,gBAAgB,EAAE,OAe7B,CAAC;AAEH,eAAO,MAAM,sBAAsB,EAAE,OASnC,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,OAS5B,CAAC;AAIH,eAAO,MAAM,cAAc,EAAE,OAQ3B,CAAC;AAEH,eAAO,MAAM,YAAY,EAAE,OAQzB,CAAC;AAEH,eAAO,MAAM,kBAAkB,EAAE,OAO/B,CAAC;AAIH,eAAO,MAAM,gBAAgB,EAAE,OAS7B,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,OAS3B,CAAC;AAEH,eAAO,MAAM,qBAAqB,EAAE,OAQlC,CAAC;AAIH,eAAO,MAAM,cAAc,EAAE,OAS3B,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,OAS5B,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,OAS5B,CAAC;AAEH,eAAO,MAAM,mBAAmB,EAAE,SAAS,OAAO,EA2BhD,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { WorkspaceProfile } from '@shrkcrft/workspace';
2
2
  import { definePreset } from "../define/define-preset.js";
3
3
  import { ANGULAR_PATH_APP, ANGULAR_PATH_COMPONENTS, ANGULAR_PATH_SERVICES, COMMON_AGENT_BRIEFING, COMMON_PIPELINE_CONTEXT_ONLY, COMMON_PIPELINE_FEATURE_DEV, COMMON_PIPELINE_UNIT_TEST, COMMON_RULE_INTERFACE_PREFIX, COMMON_RULE_NO_LOGIC_CONSTRUCTORS, COMMON_RULE_ONE_EXPORT, COMMON_SAFETY_RULE, NEST_PATH_E2E, NEST_PATH_SRC, OVERVIEW_DOC, } from "./shared-snippets.js";
4
- import { NG_ACCESSIBLE, NG_AVOID_BYPASS_SECURITY, NG_DOMAIN_NO_UI_IMPORTS, NG_FEATURE_FOLDERS, NG_GUARDS_SMALL, NG_LAZY_ROUTES, NG_LIFECYCLE_SAFE_CLEANUP, NG_NO_BUSINESS_LOGIC_IN_TEMPLATE, NG_NO_DEEP_LIB_IMPORTS, NG_NO_GOD_SERVICES, NG_ON_PUSH, NG_PLUGIN_NO_DEEP_IMPORTS, NG_PLUGIN_STABLE_CONTRACT, NG_RXJS_NO_NESTED_SUBSCRIBE, NG_SIGNALS_FIRST, NG_STANDALONE_COMPONENTS, NG_TRACK_BY, NG_TYPED_REACTIVE_FORMS, TS_AGENT_SMALL_DIFFS, TS_BRANDED_IDS, TS_DISCRIMINATED_UNIONS, TS_ERROR_HANDLING, TS_NO_ANY, TS_NO_CIRCULAR_IMPORTS, TS_NO_DEEP_IMPORTS, TS_NO_FLOATING_PROMISES, TS_PREFER_SATISFIES, TS_PUBLIC_RETURN_TYPES, TS_READONLY_DEFAULT, TS_VALIDATE_BOUNDARY_INPUT, } from "./r26-snippets.js";
4
+ import { NG_ACCESSIBLE, NG_AVOID_BYPASS_SECURITY, NG_DOMAIN_NO_UI_IMPORTS, NG_FEATURE_FOLDERS, NG_GUARDS_SMALL, NG_LAZY_ROUTES, NG_LIFECYCLE_SAFE_CLEANUP, NG_NO_BUSINESS_LOGIC_IN_TEMPLATE, NG_NO_DEEP_LIB_IMPORTS, NG_NO_GOD_SERVICES, NG_ON_PUSH, NG_RXJS_NO_NESTED_SUBSCRIBE, NG_SIGNALS_FIRST, NG_STANDALONE_COMPONENTS, NG_TRACK_BY, NG_TYPED_REACTIVE_FORMS, TS_AGENT_SMALL_DIFFS, TS_BRANDED_IDS, TS_DISCRIMINATED_UNIONS, TS_ERROR_HANDLING, TS_NO_ANY, TS_NO_CIRCULAR_IMPORTS, TS_NO_DEEP_IMPORTS, TS_NO_FLOATING_PROMISES, TS_PREFER_SATISFIES, TS_PUBLIC_RETURN_TYPES, TS_READONLY_DEFAULT, TS_VALIDATE_BOUNDARY_INPUT, } from "./r26-snippets.js";
5
5
  // ─── Core ──────────────────────────────────────────────────────────────────
6
6
  export const GENERIC_SAFE_REPO = definePreset({
7
7
  id: 'generic-safe-repo',
@@ -292,22 +292,6 @@ export const ANGULAR_SECURITY = definePreset({
292
292
  docs: { 'overview.md': OVERVIEW_DOC('Angular security', 'Avoid bypassSecurityTrust*. Sanitize user HTML. Validate route params.') },
293
293
  },
294
294
  });
295
- export const ANGULAR_PLUGIN_PLATFORM = definePreset({
296
- id: 'angular-plugin-platform',
297
- title: 'Angular — plugin platform',
298
- description: 'Plugin contracts, lifecycle, capability tokens, isolation.',
299
- tags: ['angular', 'plugins'],
300
- appliesTo: [WorkspaceProfile.HasAngular],
301
- weight: 5,
302
- includes: {
303
- knowledge: [],
304
- rules: [NG_PLUGIN_STABLE_CONTRACT, NG_PLUGIN_NO_DEEP_IMPORTS],
305
- paths: [],
306
- templates: [],
307
- pipelines: [],
308
- docs: { 'overview.md': OVERVIEW_DOC('Angular plugin platform', 'Plugin contracts are stable. No plugin-to-plugin deep imports. Lifecycle is deterministic.') },
309
- },
310
- });
311
295
  export const ANGULAR_ENTERPRISE_APP = definePreset({
312
296
  id: 'angular-enterprise-app',
313
297
  title: 'Angular enterprise app',
@@ -328,16 +312,6 @@ export const ANGULAR_LIBRARY = definePreset({
328
312
  composes: ['modern-angular', 'npm-package'],
329
313
  includes: { knowledge: [], rules: [], paths: [], templates: [], pipelines: [], docs: {} },
330
314
  });
331
- export const ANGULAR_SMART_UI_PLATFORM = definePreset({
332
- id: 'angular-smart-ui-platform',
333
- title: 'Angular smart UI platform',
334
- description: 'Smart/dumb component split, deliberate state ownership, large-app organisation.',
335
- tags: ['angular', 'ui-platform'],
336
- appliesTo: [WorkspaceProfile.HasAngular],
337
- weight: 6,
338
- composes: ['modern-angular'],
339
- includes: { knowledge: [], rules: [], paths: [], templates: [], pipelines: [], docs: {} },
340
- });
341
315
  // ─── Testing presets ───────────────────────────────────────────────────────
342
316
  export const VITEST_FOCUSED = definePreset({
343
317
  id: 'vitest-focused',
@@ -426,7 +400,7 @@ export const FASTIFY_SERVICE = definePreset({
426
400
  composes: ['node-service'],
427
401
  includes: { knowledge: [], rules: [], paths: [], templates: [], pipelines: [], docs: { 'overview.md': OVERVIEW_DOC('Fastify service', 'Schema-validate routes. Encapsulate features as plugins. Keep startup ordering deterministic.') } },
428
402
  });
429
- export const R26_PRESETS = Object.freeze([
403
+ export const MULTI_STACK_PRESETS = Object.freeze([
430
404
  GENERIC_SAFE_REPO,
431
405
  AI_AGENT_SAFE_DEVELOPMENT,
432
406
  ENTERPRISE_REVIEW_GATED,
@@ -442,10 +416,8 @@ export const R26_PRESETS = Object.freeze([
442
416
  ANGULAR_TESTING,
443
417
  ANGULAR_ACCESSIBILITY,
444
418
  ANGULAR_SECURITY,
445
- ANGULAR_PLUGIN_PLATFORM,
446
419
  ANGULAR_ENTERPRISE_APP,
447
420
  ANGULAR_LIBRARY,
448
- ANGULAR_SMART_UI_PLATFORM,
449
421
  VITEST_FOCUSED,
450
422
  JEST_FOCUSED,
451
423
  PLAYWRIGHT_FOCUSED,
@@ -34,6 +34,4 @@ export declare const NG_NO_GOD_SERVICES: string;
34
34
  export declare const NG_DOMAIN_NO_UI_IMPORTS: string;
35
35
  export declare const NG_ACCESSIBLE: string;
36
36
  export declare const NG_AVOID_BYPASS_SECURITY: string;
37
- export declare const NG_PLUGIN_STABLE_CONTRACT: string;
38
- export declare const NG_PLUGIN_NO_DEEP_IMPORTS: string;
39
37
  //# sourceMappingURL=r26-snippets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"r26-snippets.d.ts","sourceRoot":"","sources":["../../src/builtin/r26-snippets.ts"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAWT;AAID,eAAO,MAAM,SAAS,QAOpB,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAO9B,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAOlC,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAO9B,CAAC;AAEH,eAAO,MAAM,sBAAsB,QAOjC,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAOlC,CAAC;AAEH,eAAO,MAAM,iBAAiB,QAO5B,CAAC;AAEH,eAAO,MAAM,kBAAkB,QAO7B,CAAC;AAEH,eAAO,MAAM,0BAA0B,QAOrC,CAAC;AAEH,eAAO,MAAM,cAAc,QAOzB,CAAC;AAEH,eAAO,MAAM,sBAAsB,QAOjC,CAAC;AAEH,eAAO,MAAM,oBAAoB,QAO/B,CAAC;AAIH,eAAO,MAAM,wBAAwB,QAOnC,CAAC;AAEH,eAAO,MAAM,UAAU,QAOrB,CAAC;AAEH,eAAO,MAAM,gBAAgB,QAO3B,CAAC;AAEH,eAAO,MAAM,2BAA2B,QAOtC,CAAC;AAEH,eAAO,MAAM,yBAAyB,QAOpC,CAAC;AAEH,eAAO,MAAM,WAAW,QAOtB,CAAC;AAEH,eAAO,MAAM,gCAAgC,QAO3C,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAOlC,CAAC;AAEH,eAAO,MAAM,cAAc,QAOzB,CAAC;AAEH,eAAO,MAAM,eAAe,QAO1B,CAAC;AAEH,eAAO,MAAM,sBAAsB,QAOjC,CAAC;AAEH,eAAO,MAAM,kBAAkB,QAO7B,CAAC;AAEH,eAAO,MAAM,kBAAkB,QAO7B,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAOlC,CAAC;AAEH,eAAO,MAAM,aAAa,QAOxB,CAAC;AAEH,eAAO,MAAM,wBAAwB,QAOnC,CAAC;AAEH,eAAO,MAAM,yBAAyB,QAOpC,CAAC;AAEH,eAAO,MAAM,yBAAyB,QAOpC,CAAC"}
1
+ {"version":3,"file":"r26-snippets.d.ts","sourceRoot":"","sources":["../../src/builtin/r26-snippets.ts"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAWT;AAID,eAAO,MAAM,SAAS,QAOpB,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAO9B,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAOlC,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAO9B,CAAC;AAEH,eAAO,MAAM,sBAAsB,QAOjC,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAOlC,CAAC;AAEH,eAAO,MAAM,iBAAiB,QAO5B,CAAC;AAEH,eAAO,MAAM,kBAAkB,QAO7B,CAAC;AAEH,eAAO,MAAM,0BAA0B,QAOrC,CAAC;AAEH,eAAO,MAAM,cAAc,QAOzB,CAAC;AAEH,eAAO,MAAM,sBAAsB,QAOjC,CAAC;AAEH,eAAO,MAAM,oBAAoB,QAO/B,CAAC;AAIH,eAAO,MAAM,wBAAwB,QAOnC,CAAC;AAEH,eAAO,MAAM,UAAU,QAOrB,CAAC;AAEH,eAAO,MAAM,gBAAgB,QAO3B,CAAC;AAEH,eAAO,MAAM,2BAA2B,QAOtC,CAAC;AAEH,eAAO,MAAM,yBAAyB,QAOpC,CAAC;AAEH,eAAO,MAAM,WAAW,QAOtB,CAAC;AAEH,eAAO,MAAM,gCAAgC,QAO3C,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAOlC,CAAC;AAEH,eAAO,MAAM,cAAc,QAOzB,CAAC;AAEH,eAAO,MAAM,eAAe,QAO1B,CAAC;AAEH,eAAO,MAAM,sBAAsB,QAOjC,CAAC;AAEH,eAAO,MAAM,kBAAkB,QAO7B,CAAC;AAEH,eAAO,MAAM,kBAAkB,QAO7B,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAOlC,CAAC;AAEH,eAAO,MAAM,aAAa,QAOxB,CAAC;AAEH,eAAO,MAAM,wBAAwB,QAOnC,CAAC"}
@@ -239,19 +239,3 @@ export const NG_AVOID_BYPASS_SECURITY = ruleSnippet({
239
239
  appliesWhen: ['generate-code', 'review'],
240
240
  content: '`DomSanitizer.bypassSecurityTrust*` opens an XSS hole. Only use it with reviewed, trusted inputs — sanitize otherwise.',
241
241
  });
242
- export const NG_PLUGIN_STABLE_CONTRACT = ruleSnippet({
243
- id: 'angular.plugin.stable-contract',
244
- title: 'Plugin contracts are stable',
245
- priority: 'critical',
246
- tags: ['angular', 'plugins'],
247
- appliesWhen: ['generate-code', 'review'],
248
- content: 'Plugin manifests, lifecycle hooks, and capability tokens are public API. Breaking changes require a migration note and a major-version bump.',
249
- });
250
- export const NG_PLUGIN_NO_DEEP_IMPORTS = ruleSnippet({
251
- id: 'angular.plugin.no-deep-imports',
252
- title: 'Plugins cannot deep-import each other',
253
- priority: 'critical',
254
- tags: ['angular', 'plugins', 'boundaries'],
255
- appliesWhen: ['generate-code', 'review'],
256
- content: 'Plugin-to-plugin communication must use the documented event/token contract. Direct imports between plugin packages are forbidden.',
257
- });
@@ -3,5 +3,5 @@ export declare const NEXT_APP_PRESET: IPreset;
3
3
  export declare const TURBOREPO_PRESET: IPreset;
4
4
  export declare const PACKAGE_WORKSPACE_PRESET: IPreset;
5
5
  export declare const CLEAN_ARCHITECTURE_TS_PRESET: IPreset;
6
- export declare const R45_PRESETS: readonly IPreset[];
6
+ export declare const UNIVERSAL_ADOPTION_PRESETS: readonly IPreset[];
7
7
  //# sourceMappingURL=r45-presets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"r45-presets.d.ts","sourceRoot":"","sources":["../../src/builtin/r45-presets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AA0BlD,eAAO,MAAM,eAAe,EAAE,OA+C5B,CAAC;AAEH,eAAO,MAAM,gBAAgB,EAAE,OA+C7B,CAAC;AAEH,eAAO,MAAM,wBAAwB,EAAE,OAuCrC,CAAC;AAEH,eAAO,MAAM,4BAA4B,EAAE,OAoDzC,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,SAAS,OAAO,EAKxC,CAAC"}
1
+ {"version":3,"file":"r45-presets.d.ts","sourceRoot":"","sources":["../../src/builtin/r45-presets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AA0BlD,eAAO,MAAM,eAAe,EAAE,OA+C5B,CAAC;AAEH,eAAO,MAAM,gBAAgB,EAAE,OA+C7B,CAAC;AAEH,eAAO,MAAM,wBAAwB,EAAE,OAuCrC,CAAC;AAEH,eAAO,MAAM,4BAA4B,EAAE,OAoDzC,CAAC;AAEH,eAAO,MAAM,0BAA0B,EAAE,SAAS,OAAO,EAKvD,CAAC"}
@@ -52,7 +52,7 @@ export const NEXT_APP_PRESET = definePreset({
52
52
  export const TURBOREPO_PRESET = definePreset({
53
53
  id: 'turborepo',
54
54
  title: 'Turborepo monorepo',
55
- description: 'Conventions for Turborepo workspaces: package layer order, public entry points, no relative cross-package imports, run via the affected task graph.',
55
+ description: 'Conventions for Turborepo workspaces: public entry points, no relative cross-package imports, run via the affected task graph.',
56
56
  tags: ['turborepo', 'monorepo'],
57
57
  appliesTo: [WorkspaceProfile.HasTurborepo, WorkspaceProfile.IsMonorepo],
58
58
  weight: 8,
@@ -178,7 +178,7 @@ export const CLEAN_ARCHITECTURE_TS_PRESET = definePreset({
178
178
  'shrk task "<task>"',
179
179
  ],
180
180
  });
181
- export const R45_PRESETS = Object.freeze([
181
+ export const UNIVERSAL_ADOPTION_PRESETS = Object.freeze([
182
182
  NEXT_APP_PRESET,
183
183
  TURBOREPO_PRESET,
184
184
  PACKAGE_WORKSPACE_PRESET,
@@ -1,5 +1,5 @@
1
1
  import type { IPreset } from '../model/preset.js';
2
2
  export declare const NEST_SERVICE_PRESET: IPreset;
3
3
  export declare const ANGULAR_APP_PRESET: IPreset;
4
- export declare const R47_PRESETS: readonly IPreset[];
4
+ export declare const CANONICAL_ALIAS_PRESETS: readonly IPreset[];
5
5
  //# sourceMappingURL=r47-presets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"r47-presets.d.ts","sourceRoot":"","sources":["../../src/builtin/r47-presets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAuBlD,eAAO,MAAM,mBAAmB,EAAE,OA2BhC,CAAC;AAEH,eAAO,MAAM,kBAAkB,EAAE,OA2B/B,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,SAAS,OAAO,EAGxC,CAAC"}
1
+ {"version":3,"file":"r47-presets.d.ts","sourceRoot":"","sources":["../../src/builtin/r47-presets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAuBlD,eAAO,MAAM,mBAAmB,EAAE,OA2BhC,CAAC;AAEH,eAAO,MAAM,kBAAkB,EAAE,OA2B/B,CAAC;AAEH,eAAO,MAAM,uBAAuB,EAAE,SAAS,OAAO,EAGpD,CAAC"}
@@ -59,7 +59,7 @@ export const ANGULAR_APP_PRESET = definePreset({
59
59
  'shrk task "<task>"',
60
60
  ],
61
61
  });
62
- export const R47_PRESETS = Object.freeze([
62
+ export const CANONICAL_ALIAS_PRESETS = Object.freeze([
63
63
  NEST_SERVICE_PRESET,
64
64
  ANGULAR_APP_PRESET,
65
65
  ]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shrkcrft/presets",
3
- "version": "0.1.0-alpha.7",
3
+ "version": "0.1.0-alpha.8",
4
4
  "description": "SharkCraft presets: reusable project setups (knowledge/rules/paths/templates/pipelines/docs) that can be applied to a target repo through the CLI.",
5
5
  "license": "MIT",
6
6
  "author": "SharkCraft contributors",
@@ -42,9 +42,9 @@
42
42
  "typecheck": "tsc --noEmit -p tsconfig.json"
43
43
  },
44
44
  "dependencies": {
45
- "@shrkcrft/core": "^0.1.0-alpha.7",
46
- "@shrkcrft/knowledge": "^0.1.0-alpha.7",
47
- "@shrkcrft/workspace": "^0.1.0-alpha.7"
45
+ "@shrkcrft/core": "^0.1.0-alpha.8",
46
+ "@shrkcrft/knowledge": "^0.1.0-alpha.8",
47
+ "@shrkcrft/workspace": "^0.1.0-alpha.8"
48
48
  },
49
49
  "publishConfig": {
50
50
  "access": "public"