azcodr 1.4.0 → 1.5.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.
Files changed (75) hide show
  1. package/.agents/hooks.json +42 -0
  2. package/.agents/hooks.json.example +42 -42
  3. package/.agents/mcp_config.json.example +6 -1
  4. package/.agents/scripts/safety_guard.sh +34 -0
  5. package/.agents/scripts/verify_completion.sh +27 -0
  6. package/.agents/skills/agentic-architect/SKILL.md +125 -125
  7. package/.agents/skills/agentic-architect/references/agents_md_template.md +62 -62
  8. package/.agents/skills/agentic-architect/references/refinement_workflow.md +32 -32
  9. package/.agents/skills/agentic-architect/references/skill_architecture_inquiry.md +63 -63
  10. package/.agents/skills/agentic-architect/references/skill_template.md +56 -56
  11. package/.agents/skills/agentic-architect/scripts/validate_agentic_configs.sh +401 -331
  12. package/.agents/skills/clean-code-refactor/SKILL.md +91 -91
  13. package/.agents/skills/clean-code-refactor/references/clean_code_smells.md +27 -27
  14. package/.agents/skills/clean-code-refactor/references/design_patterns_ts.md +65 -65
  15. package/.agents/skills/compliance-audit/SKILL.md +120 -120
  16. package/.agents/skills/compliance-audit/references/owasp_top10_controls.md +16 -16
  17. package/.agents/skills/compliance-audit/references/soc2_iso_controls.md +28 -28
  18. package/.agents/skills/lets-build/SKILL.md +173 -165
  19. package/.agents/skills/lets-build/references/architecture_interview_matrix.md +115 -109
  20. package/.agents/skills/lets-build/references/hexagonal_bootstrap_scaffolds.md +160 -113
  21. package/.agents/skills/lets-build/references/project_readme_template.md +79 -79
  22. package/.agents/skills/lets-build/scripts/bootstrap_workspace.sh +255 -136
  23. package/.agents/skills/product-analyst/SKILL.md +154 -143
  24. package/.agents/skills/product-analyst/references/backlog_ordering_techniques.md +107 -107
  25. package/.agents/skills/product-analyst/references/gherkin_patterns.md +46 -46
  26. package/.agents/skills/product-analyst/references/invest_checklist.md +38 -38
  27. package/.agents/skills/product-analyst/references/okr_alignment_guide.md +76 -76
  28. package/.agents/skills/product-analyst/references/smart_tasks.md +59 -59
  29. package/.agents/skills/relentless-questioner/SKILL.md +128 -125
  30. package/.agents/skills/relentless-questioner/references/adaptive_question_trees.md +102 -84
  31. package/.editorconfig +19 -19
  32. package/.github/copilot-instructions.md +1 -0
  33. package/.github/workflows/ci.yml +56 -0
  34. package/.gitignore +25 -23
  35. package/AGENTS.md +102 -102
  36. package/LICENSE +21 -21
  37. package/README.md +154 -154
  38. package/bin/azcodr.js +228 -223
  39. package/data/.gitkeep +0 -0
  40. package/docs/knowledge/ubiquitous_language.md +18 -18
  41. package/docs/rules/agentic_configuration.md +259 -256
  42. package/docs/rules/api_architecture.md +179 -179
  43. package/docs/rules/authentication.md +76 -76
  44. package/docs/rules/authorization.md +75 -75
  45. package/docs/rules/caching.md +69 -69
  46. package/docs/rules/clean_code.md +62 -62
  47. package/docs/rules/cloud_native.md +41 -41
  48. package/docs/rules/cqrs.md +203 -203
  49. package/docs/rules/database_design.md +125 -125
  50. package/docs/rules/database_operations.md +69 -69
  51. package/docs/rules/design_patterns.md +98 -98
  52. package/docs/rules/devops_ci_cd.md +76 -76
  53. package/docs/rules/domain_driven_design.md +122 -122
  54. package/docs/rules/error_handling.md +52 -52
  55. package/docs/rules/feature_flags.md +59 -59
  56. package/docs/rules/frontend_architecture.md +157 -157
  57. package/docs/rules/multitenancy_architecture.md +98 -98
  58. package/docs/rules/product_ownership.md +127 -127
  59. package/docs/rules/project_management.md +49 -49
  60. package/docs/rules/relentless_questioning.md +52 -48
  61. package/docs/rules/requirements_engineering.md +98 -98
  62. package/docs/rules/security_compliance.md +53 -53
  63. package/docs/rules/server_driven_ui.md +88 -88
  64. package/docs/rules/test_driven_development.md +185 -184
  65. package/docs/rules/transactional_email.md +27 -27
  66. package/docs/rules/type_safety.md +65 -65
  67. package/docs/rules/ui_ux_architecture.md +150 -150
  68. package/docs/rules/workflow_state_machines.md +117 -117
  69. package/lib/index.d.ts +134 -123
  70. package/lib/index.js +5 -5
  71. package/lib/scaffold.js +399 -248
  72. package/memory.md +36 -289
  73. package/package.json +62 -59
  74. package/scripts/test_coverage.js +38 -0
  75. package/scripts/validate.js +246 -0
package/lib/index.d.ts CHANGED
@@ -1,123 +1,134 @@
1
- /**
2
- * Enterprise Multi-Tenant Architecture & Agentic Engineering Starter Template
3
- * Programmatic API Definitions
4
- */
5
-
6
- export interface ScaffoldOptions {
7
- /** Target directory path where template should be scaffolded (default: process.cwd()) */
8
- targetDir?: string;
9
- /** Force overwrite if target directory is non-empty (default: false) */
10
- force?: boolean;
11
- /** Skip git repository initialization (default: false) */
12
- noGit?: boolean;
13
- /** Custom template root directory (default: azcodr root) */
14
- templateDir?: string;
15
- /** Simulate scaffolding without writing files or running git (default: false) */
16
- dryRun?: boolean;
17
- /** Suppress console output messages (default: false) */
18
- silent?: boolean;
19
- }
20
-
21
- export interface ScaffoldResult {
22
- /** Whether the scaffolding succeeded */
23
- success: boolean;
24
- /** Absolute resolved path of the target directory */
25
- targetDir: string;
26
- /** Whether git init was successfully executed */
27
- gitInitialized: boolean;
28
- /** Whether execution ran in dry-run simulation mode */
29
- dryRun: boolean;
30
- /** List of files, directories, and symlinks created or simulated */
31
- actions: string[];
32
- }
33
-
34
- export interface ValidateTargetOptions {
35
- /** Custom template root directory */
36
- templateDir?: string;
37
- /** Force allow non-empty directory */
38
- force?: boolean;
39
- }
40
-
41
- export interface InitGitOptions {
42
- /** If true, skips git initialization */
43
- noGit?: boolean;
44
- /** If true, simulates git initialization without executing */
45
- dryRun?: boolean;
46
- }
47
-
48
- export interface CopyTemplateOptions {
49
- /** If true, simulates copy without writing to disk */
50
- dryRun?: boolean;
51
- }
52
-
53
- /**
54
- * High-level orchestration function to scaffold the azcodr workspace into targetDir.
55
- */
56
- export function scaffold(options?: ScaffoldOptions): ScaffoldResult;
57
-
58
- /**
59
- * Validates the target directory to ensure it is suitable for scaffolding.
60
- */
61
- export function validateTarget(targetDir: string, options?: ValidateTargetOptions): void;
62
-
63
- /**
64
- * Copies template items into target directory and sets up symlinks and permissions.
65
- */
66
- export function copyTemplate(
67
- targetDir: string,
68
- templateDir?: string,
69
- options?: CopyTemplateOptions
70
- ): string[];
71
-
72
- /**
73
- * Safely creates or updates a symbolic link, falling back to a file copy if symlinks are unsupported.
74
- */
75
- export function ensureSymlink(
76
- targetDir: string,
77
- linkName: string,
78
- targetFileName: string,
79
- dryRun?: boolean
80
- ): boolean;
81
-
82
- /**
83
- * Detects whether linkName and targetFileName refer to the same entry on a case-insensitive filesystem.
84
- */
85
- export function isSameCaseInsensitiveFile(
86
- targetDir: string,
87
- linkName: string,
88
- targetFileName: string
89
- ): boolean;
90
-
91
- /**
92
- * Ensures all bash scripts in skill directories have executable permissions (0o755).
93
- */
94
- export function makeScriptsExecutable(targetDir: string, dryRun?: boolean): string[];
95
-
96
- /**
97
- * Initializes a git repository in the target directory if not already inside one.
98
- */
99
- export function initGit(targetDir: string, options?: InitGitOptions): boolean;
100
-
101
- /**
102
- * Returns the root path to the azcodr template files.
103
- */
104
- export function getTemplateDir(): string;
105
-
106
- /**
107
- * Array of essential template files and directories copied during scaffolding.
108
- */
109
- export const TEMPLATE_ITEMS: readonly string[];
110
-
111
- declare const defaultExport: {
112
- scaffold: typeof scaffold;
113
- validateTarget: typeof validateTarget;
114
- copyTemplate: typeof copyTemplate;
115
- ensureSymlink: typeof ensureSymlink;
116
- isSameCaseInsensitiveFile: typeof isSameCaseInsensitiveFile;
117
- makeScriptsExecutable: typeof makeScriptsExecutable;
118
- initGit: typeof initGit;
119
- getTemplateDir: typeof getTemplateDir;
120
- TEMPLATE_ITEMS: typeof TEMPLATE_ITEMS;
121
- };
122
-
123
- export default defaultExport;
1
+ /**
2
+ * Enterprise Multi-Tenant Architecture & Agentic Engineering Starter Template
3
+ * Programmatic API Definitions
4
+ */
5
+
6
+ export interface ScaffoldOptions {
7
+ /** Target directory path where template should be scaffolded (default: process.cwd()) */
8
+ targetDir?: string;
9
+ /** Force overwrite if target directory is non-empty (default: false) */
10
+ force?: boolean;
11
+ /** Skip git repository initialization (default: false) */
12
+ noGit?: boolean;
13
+ /** Custom template root directory (default: azcodr root) */
14
+ templateDir?: string;
15
+ /** Simulate scaffolding without writing files or running git (default: false) */
16
+ dryRun?: boolean;
17
+ /** Suppress console output messages (default: false) */
18
+ silent?: boolean;
19
+ }
20
+
21
+ export interface ScaffoldResult {
22
+ /** Whether the scaffolding succeeded */
23
+ success: boolean;
24
+ /** Absolute resolved path of the target directory */
25
+ targetDir: string;
26
+ /** Whether git init was successfully executed */
27
+ gitInitialized: boolean;
28
+ /** Whether execution ran in dry-run simulation mode */
29
+ dryRun: boolean;
30
+ /** List of files, directories, and symlinks created or simulated */
31
+ actions: string[];
32
+ }
33
+
34
+ export interface ValidateTargetOptions {
35
+ /** Custom template root directory */
36
+ templateDir?: string;
37
+ /** Force allow non-empty directory */
38
+ force?: boolean;
39
+ }
40
+
41
+ export interface InitGitOptions {
42
+ /** If true, skips git initialization */
43
+ noGit?: boolean;
44
+ /** If true, simulates git initialization without executing */
45
+ dryRun?: boolean;
46
+ }
47
+
48
+ export interface CopyTemplateOptions {
49
+ /** If true, simulates copy without writing to disk */
50
+ dryRun?: boolean;
51
+ }
52
+
53
+ /**
54
+ * High-level orchestration function to scaffold the azcodr workspace into targetDir.
55
+ */
56
+ export function scaffold(options?: ScaffoldOptions): ScaffoldResult;
57
+
58
+ /**
59
+ * Validates the target directory to ensure it is suitable for scaffolding.
60
+ */
61
+ export function validateTarget(targetDir: string, options?: ValidateTargetOptions): void;
62
+
63
+ /**
64
+ * Copies template items into target directory and sets up symlinks and permissions.
65
+ */
66
+ export function copyTemplate(
67
+ targetDir: string,
68
+ templateDir?: string,
69
+ options?: CopyTemplateOptions
70
+ ): string[];
71
+
72
+ /**
73
+ * Safely creates or updates a symbolic link, falling back to a file copy if symlinks are unsupported.
74
+ */
75
+ export function ensureSymlink(
76
+ targetDir: string,
77
+ linkName: string,
78
+ targetFileName: string,
79
+ dryRun?: boolean
80
+ ): boolean;
81
+
82
+ /**
83
+ * Creates a symlink, falling back to a text pointer (not a full copy).
84
+ */
85
+ export function ensureSymlinkOrPointer(
86
+ targetDir: string,
87
+ linkName: string,
88
+ targetFileName: string,
89
+ dryRun?: boolean
90
+ ): boolean;
91
+
92
+ /**
93
+ * Detects whether linkName and targetFileName refer to the same entry on a case-insensitive filesystem.
94
+ */
95
+ export function isSameCaseInsensitiveFile(
96
+ targetDir: string,
97
+ linkName: string,
98
+ targetFileName: string
99
+ ): boolean;
100
+
101
+ /**
102
+ * Ensures all bash scripts in skill directories have executable permissions (0o755).
103
+ */
104
+ export function makeScriptsExecutable(targetDir: string, dryRun?: boolean): string[];
105
+
106
+ /**
107
+ * Initializes a git repository in the target directory if not already inside one.
108
+ */
109
+ export function initGit(targetDir: string, options?: InitGitOptions): boolean;
110
+
111
+ /**
112
+ * Returns the root path to the azcodr template files.
113
+ */
114
+ export function getTemplateDir(): string;
115
+
116
+ /**
117
+ * Array of essential template files and directories copied during scaffolding.
118
+ */
119
+ export const TEMPLATE_ITEMS: readonly string[];
120
+
121
+ declare const defaultExport: {
122
+ scaffold: typeof scaffold;
123
+ validateTarget: typeof validateTarget;
124
+ copyTemplate: typeof copyTemplate;
125
+ ensureSymlink: typeof ensureSymlink;
126
+ ensureSymlinkOrPointer: typeof ensureSymlinkOrPointer;
127
+ isSameCaseInsensitiveFile: typeof isSameCaseInsensitiveFile;
128
+ makeScriptsExecutable: typeof makeScriptsExecutable;
129
+ initGit: typeof initGit;
130
+ getTemplateDir: typeof getTemplateDir;
131
+ TEMPLATE_ITEMS: typeof TEMPLATE_ITEMS;
132
+ };
133
+
134
+ export default defaultExport;
package/lib/index.js CHANGED
@@ -1,5 +1,5 @@
1
- 'use strict';
2
-
3
- const scaffold = require('./scaffold.js');
4
-
5
- module.exports = scaffold;
1
+ 'use strict';
2
+
3
+ const scaffold = require('./scaffold.js');
4
+
5
+ module.exports = scaffold;