@ryuenn3123/agentic-senior-core 2.5.22 → 3.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 (173) hide show
  1. package/.agent-context/prompts/init-project.md +5 -5
  2. package/.agent-context/prompts/refactor.md +2 -1
  3. package/.agent-context/prompts/review-code.md +3 -2
  4. package/.agent-context/review-checklists/pr-checklist.md +8 -1
  5. package/.agent-context/rules/architecture.md +11 -0
  6. package/.agent-context/rules/frontend-architecture.md +2 -2
  7. package/.agent-context/state/architecture-map.md +1 -1
  8. package/.agent-context/state/memory-continuity-benchmark.json +1 -1
  9. package/.agents/workflows/init-project.md +3 -3
  10. package/.agents/workflows/refactor.md +1 -1
  11. package/.agents/workflows/review-code.md +4 -5
  12. package/.cursorrules +27 -71
  13. package/.gemini/instructions.md +6 -7
  14. package/.github/copilot-instructions.md +5 -6
  15. package/.windsurfrules +27 -71
  16. package/AGENTS.md +7 -9
  17. package/CONTRIBUTING.md +18 -31
  18. package/README.md +21 -4
  19. package/bin/agentic-senior-core.js +0 -6
  20. package/lib/cli/commands/init.mjs +113 -650
  21. package/lib/cli/commands/launch.mjs +1 -23
  22. package/lib/cli/commands/rollback.mjs +1 -1
  23. package/lib/cli/commands/upgrade.mjs +1 -23
  24. package/lib/cli/compiler.mjs +77 -72
  25. package/lib/cli/constants.mjs +84 -26
  26. package/lib/cli/init-architecture-flow.mjs +231 -0
  27. package/lib/cli/init-detection-flow.mjs +123 -0
  28. package/lib/cli/init-options.mjs +344 -0
  29. package/lib/cli/init-selection.mjs +100 -0
  30. package/lib/cli/preflight.mjs +1 -1
  31. package/lib/cli/profile-packs.mjs +15 -1
  32. package/lib/cli/project-scaffolder.mjs +18 -154
  33. package/lib/cli/utils.mjs +16 -12
  34. package/mcp.json +19 -19
  35. package/package.json +5 -2
  36. package/scripts/context-triggered-audit.mjs +18 -18
  37. package/scripts/documentation-boundary-audit.mjs +92 -5
  38. package/scripts/forbidden-content-check.mjs +1 -1
  39. package/scripts/frontend-usability-audit.mjs +21 -28
  40. package/scripts/governance-weekly-report.mjs +29 -15
  41. package/scripts/llm-judge.mjs +2 -5
  42. package/scripts/mcp-server.mjs +389 -5
  43. package/scripts/release-gate.mjs +121 -145
  44. package/scripts/sync-thin-adapters.mjs +161 -0
  45. package/scripts/v3-purge-audit.mjs +231 -0
  46. package/scripts/validate-evidence-bundle.mjs +1 -1
  47. package/scripts/validate.mjs +224 -272
  48. package/.agent-context/blueprints/api-nextjs.md +0 -184
  49. package/.agent-context/blueprints/aspnet-api.md +0 -247
  50. package/.agent-context/blueprints/ci-github-actions.md +0 -226
  51. package/.agent-context/blueprints/ci-gitlab.md +0 -200
  52. package/.agent-context/blueprints/fastapi-service.md +0 -210
  53. package/.agent-context/blueprints/go-service.md +0 -217
  54. package/.agent-context/blueprints/graphql-grpc-api.md +0 -51
  55. package/.agent-context/blueprints/infrastructure-as-code.md +0 -62
  56. package/.agent-context/blueprints/kubernetes-manifests.md +0 -76
  57. package/.agent-context/blueprints/laravel-api.md +0 -233
  58. package/.agent-context/blueprints/mobile-app.md +0 -91
  59. package/.agent-context/blueprints/nestjs-logic.md +0 -247
  60. package/.agent-context/blueprints/observability.md +0 -227
  61. package/.agent-context/blueprints/spring-boot-api.md +0 -218
  62. package/.agent-context/profiles/platform.md +0 -13
  63. package/.agent-context/profiles/regulated.md +0 -13
  64. package/.agent-context/profiles/startup.md +0 -13
  65. package/.agent-context/review-checklists/frontend-excellence-rubric.md +0 -73
  66. package/.agent-context/review-checklists/frontend-skill-parity.md +0 -29
  67. package/.agent-context/review-checklists/frontend-usability.md +0 -35
  68. package/.agent-context/review-checklists/marketplace-acceptance.md +0 -60
  69. package/.agent-context/review-checklists/performance-audit.md +0 -71
  70. package/.agent-context/review-checklists/release-operations.md +0 -33
  71. package/.agent-context/review-checklists/security-audit.md +0 -119
  72. package/.agent-context/skills/README.md +0 -63
  73. package/.agent-context/skills/backend/README.md +0 -68
  74. package/.agent-context/skills/backend/architecture.md +0 -361
  75. package/.agent-context/skills/backend/compatibility-manifest.json +0 -8
  76. package/.agent-context/skills/backend/data-access.md +0 -231
  77. package/.agent-context/skills/backend/errors.md +0 -138
  78. package/.agent-context/skills/backend/validation.md +0 -117
  79. package/.agent-context/skills/backend.md +0 -29
  80. package/.agent-context/skills/cli/.evidence/compatibility-manifest.json +0 -5
  81. package/.agent-context/skills/cli/.evidence/sbom-excerpt.json +0 -10
  82. package/.agent-context/skills/cli/.evidence/test-report.json +0 -8
  83. package/.agent-context/skills/cli/CHANGELOG.md +0 -6
  84. package/.agent-context/skills/cli/README.md +0 -56
  85. package/.agent-context/skills/cli/compatibility-manifest.json +0 -8
  86. package/.agent-context/skills/cli/init.md +0 -38
  87. package/.agent-context/skills/cli/output.md +0 -36
  88. package/.agent-context/skills/cli/package.json +0 -5
  89. package/.agent-context/skills/cli/safety-telemetry.md +0 -39
  90. package/.agent-context/skills/cli/tests/.gitkeep +0 -1
  91. package/.agent-context/skills/cli/upgrade.md +0 -38
  92. package/.agent-context/skills/cli.md +0 -32
  93. package/.agent-context/skills/distribution/.evidence/compatibility-manifest.json +0 -9
  94. package/.agent-context/skills/distribution/.evidence/sbom-excerpt.json +0 -6
  95. package/.agent-context/skills/distribution/.evidence/test-report.json +0 -8
  96. package/.agent-context/skills/distribution/CHANGELOG.md +0 -7
  97. package/.agent-context/skills/distribution/README.md +0 -27
  98. package/.agent-context/skills/distribution/compatibility-manifest.json +0 -8
  99. package/.agent-context/skills/distribution/compatibility.md +0 -32
  100. package/.agent-context/skills/distribution/package.json +0 -5
  101. package/.agent-context/skills/distribution/provenance-attestation.md +0 -47
  102. package/.agent-context/skills/distribution/publish.md +0 -37
  103. package/.agent-context/skills/distribution/rollback.md +0 -32
  104. package/.agent-context/skills/distribution/tests/.gitkeep +0 -1
  105. package/.agent-context/skills/distribution.md +0 -32
  106. package/.agent-context/skills/frontend/.evidence/compatibility-manifest.json +0 -9
  107. package/.agent-context/skills/frontend/.evidence/sbom-excerpt.json +0 -6
  108. package/.agent-context/skills/frontend/.evidence/test-report.json +0 -8
  109. package/.agent-context/skills/frontend/CHANGELOG.md +0 -7
  110. package/.agent-context/skills/frontend/README.md +0 -50
  111. package/.agent-context/skills/frontend/accessibility.md +0 -107
  112. package/.agent-context/skills/frontend/compatibility-manifest.json +0 -8
  113. package/.agent-context/skills/frontend/conversion-clarity.md +0 -51
  114. package/.agent-context/skills/frontend/motion.md +0 -67
  115. package/.agent-context/skills/frontend/package.json +0 -5
  116. package/.agent-context/skills/frontend/performance.md +0 -63
  117. package/.agent-context/skills/frontend/responsive-delivery.md +0 -41
  118. package/.agent-context/skills/frontend/tests/.gitkeep +0 -1
  119. package/.agent-context/skills/frontend/ui-architecture.md +0 -128
  120. package/.agent-context/skills/frontend.md +0 -40
  121. package/.agent-context/skills/fullstack/.evidence/compatibility-manifest.json +0 -9
  122. package/.agent-context/skills/fullstack/.evidence/sbom-excerpt.json +0 -6
  123. package/.agent-context/skills/fullstack/.evidence/test-report.json +0 -8
  124. package/.agent-context/skills/fullstack/CHANGELOG.md +0 -7
  125. package/.agent-context/skills/fullstack/README.md +0 -27
  126. package/.agent-context/skills/fullstack/compatibility-manifest.json +0 -8
  127. package/.agent-context/skills/fullstack/contracts.md +0 -53
  128. package/.agent-context/skills/fullstack/end-to-end.md +0 -42
  129. package/.agent-context/skills/fullstack/feature-slicing.md +0 -65
  130. package/.agent-context/skills/fullstack/package.json +0 -5
  131. package/.agent-context/skills/fullstack/release-coordination.md +0 -51
  132. package/.agent-context/skills/fullstack/tests/.gitkeep +0 -1
  133. package/.agent-context/skills/fullstack.md +0 -30
  134. package/.agent-context/skills/index.json +0 -107
  135. package/.agent-context/skills/review-quality/.evidence/compatibility-manifest.json +0 -9
  136. package/.agent-context/skills/review-quality/.evidence/sbom-excerpt.json +0 -6
  137. package/.agent-context/skills/review-quality/.evidence/test-report.json +0 -8
  138. package/.agent-context/skills/review-quality/CHANGELOG.md +0 -7
  139. package/.agent-context/skills/review-quality/README.md +0 -27
  140. package/.agent-context/skills/review-quality/benchmark.md +0 -30
  141. package/.agent-context/skills/review-quality/compatibility-manifest.json +0 -8
  142. package/.agent-context/skills/review-quality/package.json +0 -5
  143. package/.agent-context/skills/review-quality/planning.md +0 -38
  144. package/.agent-context/skills/review-quality/release-decision.md +0 -49
  145. package/.agent-context/skills/review-quality/security.md +0 -34
  146. package/.agent-context/skills/review-quality/tests/.gitkeep +0 -1
  147. package/.agent-context/skills/review-quality.md +0 -34
  148. package/.agent-context/stacks/csharp.md +0 -149
  149. package/.agent-context/stacks/flutter.md +0 -16
  150. package/.agent-context/stacks/go.md +0 -181
  151. package/.agent-context/stacks/java.md +0 -135
  152. package/.agent-context/stacks/php.md +0 -192
  153. package/.agent-context/stacks/python.md +0 -153
  154. package/.agent-context/stacks/react-native.md +0 -16
  155. package/.agent-context/stacks/ruby.md +0 -80
  156. package/.agent-context/stacks/rust.md +0 -86
  157. package/.agent-context/stacks/typescript.md +0 -317
  158. package/.agent-context/state/skill-platform.json +0 -38
  159. package/lib/cli/skill-selector.mjs +0 -232
  160. package/lib/cli/templates/api-contract.md.id.tmpl +0 -143
  161. package/lib/cli/templates/api-contract.md.tmpl +0 -143
  162. package/lib/cli/templates/architecture-decision-record.md.id.tmpl +0 -106
  163. package/lib/cli/templates/architecture-decision-record.md.tmpl +0 -145
  164. package/lib/cli/templates/database-schema.md.id.tmpl +0 -74
  165. package/lib/cli/templates/database-schema.md.tmpl +0 -74
  166. package/lib/cli/templates/flow-overview.md.id.tmpl +0 -118
  167. package/lib/cli/templates/flow-overview.md.tmpl +0 -131
  168. package/lib/cli/templates/project-brief.md.id.tmpl +0 -55
  169. package/lib/cli/templates/project-brief.md.tmpl +0 -79
  170. package/scripts/init-project.ps1 +0 -105
  171. package/scripts/init-project.sh +0 -131
  172. package/scripts/skill-tier-policy.mjs +0 -76
  173. package/scripts/trust-scorer.mjs +0 -119
@@ -1,118 +0,0 @@
1
- # Ikhtisar Flow: {{projectName}}
2
-
3
- Dibuat oleh Agentic-Senior-Core CLI v{{cliVersion}}
4
- Dibuat pada: {{generatedAt}}
5
- Versi template: {{templateVersion}}
6
-
7
- ---
8
-
9
- ## Ikhtisar Sistem
10
-
11
- **Proyek**: {{projectName}}
12
- **Domain**: {{primaryDomain}}
13
- **Stack**: {{stackDisplayName}}
14
- **Blueprint**: {{blueprintDisplayName}}
15
-
16
- ## Arsitektur Tingkat Tinggi
17
-
18
- ```
19
- +-------------+ +--------------+ +--------------+
20
- | Client |---->| Transport |---->| Service |
21
- | (Browser/ |<----| Layer |<----| Layer |
22
- | Mobile/CLI) | | (Routes/ | | (Business |
23
- | | | Handlers) | | Logic) |
24
- +-------------+ +--------------+ +------+-------+
25
- |
26
- +------+-------+
27
- | Repository |
28
- | Layer |
29
- | (Data Access)|
30
- +------+-------+
31
- |
32
- +------+-------+
33
- | Database |
34
- | {{databaseChoice}} |
35
- +--------------+
36
- ```
37
-
38
- ## Flow Request
39
-
40
- ### Siklus Request Standar
41
-
42
- 1. **Client** mengirim HTTP request (atau input CLI, atau event trigger).
43
- 2. **Transport layer** menerima request, memvalidasi format input, lalu routing ke handler yang tepat.
44
- 3. **Service layer** menerapkan business logic, orkestrasi operasi domain, dan enforcement aturan.
45
- 4. **Repository layer** melakukan akses data (read/write ke database atau layanan eksternal).
46
- 5. **Response** kembali dari Service ke Transport lalu ke Client.
47
-
48
- ### Tanggung Jawab Layer
49
-
50
- | Layer | Melakukan | Tidak melakukan |
51
- |-------|-----------|-----------------|
52
- | Transport | Parse input, validasi shape, routing, format response | Business logic, akses database |
53
- | Service | Business rules, orkestrasi, validasi domain | Parse HTTP, format response, menjalankan SQL |
54
- | Repository | Akses data, query, caching | Business logic, validasi input |
55
-
56
- {{#if hasAuth}}
57
- ## Flow Autentikasi
58
-
59
- ```
60
- +--------+ +-----------+ +-----------+ +-----------+
61
- | Client |---->| Auth |---->| Token |---->| Protected |
62
- | | | Endpoint | | Verify | | Resource |
63
- | |<----| |<----| ({{authStrategy}}) |<----| |
64
- +--------+ +-----------+ +-----------+ +-----------+
65
- ```
66
-
67
- 1. Client mengirim kredensial ke endpoint auth.
68
- 2. Service memvalidasi kredensial terhadap data tersimpan.
69
- 3. Jika sukses, service mengeluarkan token {{authStrategy}}.
70
- 4. Client menyertakan token di request berikutnya.
71
- 5. Middleware memverifikasi token sebelum request diteruskan ke handler terproteksi.
72
-
73
- {{/if}}
74
- ## Flow Fitur
75
-
76
- Untuk setiap fitur kunci, definisikan flow data dan kontrol:
77
-
78
- {{#each features}}
79
- ### {{this}}
80
-
81
- **Aktor**: [siapa yang memulai flow ini]
82
- **Trigger**: [apa yang memulai flow ini]
83
- **Langkah**:
84
- 1. [Langkah 1]
85
- 2. [Langkah 2]
86
- 3. [Langkah 3]
87
-
88
- **Hasil sukses**: [apa yang terjadi saat flow selesai]
89
- **Penanganan error**: [apa yang terjadi jika gagal]
90
-
91
- ---
92
-
93
- {{/each}}
94
-
95
- ## Diagram Aliran Data
96
-
97
- ```
98
- Input Data Proses Output
99
- ---------- ----------- ----------
100
- +--------------------+
101
- User Input ----->| Validation |
102
- | (Transport) |
103
- +---------+----------+
104
- |
105
- +---------v----------+
106
- | Business Logic |
107
- | (Service) |
108
- +---------+----------+
109
- |
110
- +---------v----------+
111
- | Data Persist |-------> Stored Data
112
- | (Repository) |
113
- +--------------------+
114
- ```
115
-
116
- ---
117
-
118
- Dokumen ini adalah referensi hidup. Perbarui flow saat fitur diimplementasikan dan disempurnakan.
@@ -1,131 +0,0 @@
1
- # Flow Overview: {{projectName}}
2
-
3
- Generated by Agentic-Senior-Core CLI v{{cliVersion}}
4
- Generated at: {{generatedAt}}
5
- Template version: {{templateVersion}}
6
-
7
- ---
8
-
9
- ## System Overview
10
-
11
- **Project**: {{projectName}}
12
- **Domain**: {{primaryDomain}}
13
- **Stack**: {{stackDisplayName}}
14
- **Blueprint**: {{blueprintDisplayName}}
15
- **Runtime target**: {{runtimeEnvironmentLabel}}
16
- **Containerization**: {{dockerStrategy}}
17
-
18
- {{#if hasDocker}}
19
- ## Container Flow (Dynamic Dev and Prod)
20
-
21
- - Container setup is generated dynamically by AI from current dependencies, not from static canned templates.
22
- {{dockerDevelopmentGuidance}}
23
- {{dockerProductionGuidance}}
24
- - Keep dev and prod container concerns explicitly separated.
25
-
26
- {{/if}}
27
-
28
- ## High-Level Architecture
29
-
30
- ```
31
- ┌─────────────┐ ┌──────────────┐ ┌──────────────┐
32
- │ Client │────>│ Transport │────>│ Service │
33
- │ (Browser/ │<────│ Layer │<────│ Layer │
34
- │ Mobile/ │ │ (Routes/ │ │ (Business │
35
- │ CLI) │ │ Handlers) │ │ Logic) │
36
- └─────────────┘ └──────────────┘ └──────┬───────┘
37
-
38
- ┌──────▼───────┐
39
- │ Repository │
40
- │ Layer │
41
- │ (Data │
42
- │ Access) │
43
- └──────┬───────┘
44
-
45
- ┌──────▼───────┐
46
- │ Database │
47
- │ {{databaseChoice}}
48
- └──────────────┘
49
- ```
50
-
51
- ## Request Flow
52
-
53
- ### Standard Request Lifecycle
54
-
55
- 1. **Client** sends HTTP request (or CLI input, or event trigger).
56
- 2. **Transport layer** receives the request, validates input format, and routes to the correct handler.
57
- 3. **Service layer** applies business logic, orchestrates domain operations, and enforces rules.
58
- 4. **Repository layer** performs data access (read/write to database or external service).
59
- 5. **Response** flows back through Service to Transport to Client.
60
-
61
- ### Layer Responsibilities
62
-
63
- | Layer | Does | Does NOT |
64
- |-------|------|----------|
65
- | Transport | Parse input, validate shape, route, format response | Contain business logic, access database |
66
- | Service | Business rules, orchestration, domain validation | Parse HTTP, format responses, run SQL |
67
- | Repository | Data access, query construction, caching | Business logic, input validation |
68
-
69
- {{#if hasAuth}}
70
- ## Authentication Flow
71
-
72
- ```
73
- ┌────────┐ ┌───────────┐ ┌──────────┐ ┌──────────┐
74
- │ Client │────>│ Auth │────>│ Token │────>│ Protected│
75
- │ │ │ Endpoint │ │ Verify │ │ Resource │
76
- │ │<────│ │<────│ ({{authStrategy}}) │<────│ │
77
- └────────┘ └───────────┘ └──────────┘ └──────────┘
78
- ```
79
-
80
- 1. Client sends credentials to auth endpoint.
81
- 2. Service validates credentials against stored data.
82
- 3. On success, service issues a {{authStrategy}} token.
83
- 4. Client includes token in subsequent requests.
84
- 5. Middleware verifies token before forwarding to protected handlers.
85
-
86
- {{/if}}
87
- ## Feature Flows
88
-
89
- For each key feature, define the data and control flow:
90
-
91
- {{#each features}}
92
- ### {{this}}
93
-
94
- **Actors**: [define who initiates this flow]
95
- **Trigger**: [define what starts this flow]
96
- **Steps**:
97
- 1. [Step 1]
98
- 2. [Step 2]
99
- 3. [Step 3]
100
-
101
- **Success outcome**: [what happens when the flow completes]
102
- **Error handling**: [what happens on failure]
103
-
104
- ---
105
-
106
- {{/each}}
107
-
108
- ## Data Flow Diagram
109
-
110
- ```
111
- Input Data Processing Output
112
- ────────── ────────── ──────────
113
- ┌───────────────────┐
114
- User Input ──────>│ Validation │
115
- │ (Transport) │
116
- └────────┬──────────┘
117
-
118
- ┌────────▼──────────┐
119
- │ Business Logic │
120
- │ (Service) │
121
- └────────┬──────────┘
122
-
123
- ┌────────▼──────────┐
124
- │ Data Persist │───────> Stored Data
125
- │ (Repository) │
126
- └───────────────────┘
127
- ```
128
-
129
- ---
130
-
131
- This document is a living reference. Update flows as features are implemented and refined.
@@ -1,55 +0,0 @@
1
- # Ringkasan Proyek: {{projectName}}
2
-
3
- Dibuat oleh Agentic-Senior-Core CLI v{{cliVersion}}
4
- Dibuat pada: {{generatedAt}}
5
- Versi template: {{templateVersion}}
6
-
7
- ---
8
-
9
- ## Ikhtisar
10
-
11
- **Nama proyek**: {{projectName}}
12
- **Deskripsi**: {{projectDescription}}
13
- **Domain utama**: {{primaryDomain}}
14
-
15
- ## Keputusan Teknologi
16
-
17
- **Stack**: {{stackDisplayName}}
18
- **Blueprint**: {{blueprintDisplayName}}
19
- **Database**: {{databaseChoice}}
20
- **Strategi autentikasi**: {{authStrategy}}
21
- **Target environment runtime**: {{runtimeEnvironmentLabel}}
22
- **Strategi containerisasi**: {{dockerStrategy}}
23
-
24
- ## Fitur Kunci
25
-
26
- {{#each features}}
27
- - {{this}}
28
- {{/each}}
29
-
30
- ## Konteks Tambahan
31
-
32
- {{additionalContext}}
33
-
34
- ## Batasan dan Asumsi
35
-
36
- - Proyek ini mengikuti aturan governance di `.agent-context/rules/`.
37
- - Konvensi stack mengacu ke `.agent-context/stacks/{{stackFileName}}`.
38
- - Pola arsitektur mengacu ke `.agent-context/blueprints/{{blueprintFileName}}`.
39
- - Semua kode harus lolos checklist di `.agent-context/review-checklists/pr-checklist.md`.
40
-
41
- ## Tujuan
42
-
43
- 1. Mengirimkan {{primaryDomain}} yang berjalan dengan stack {{stackDisplayName}}.
44
- 2. Menjaga standar engineering production-grade sejak awal.
45
- 3. Menjaga keputusan arsitektur tetap terdokumentasi dan bisa ditelusuri.
46
-
47
- ## Non-Tujuan (Ruang Lingkup Awal)
48
-
49
- - Optimasi performa di luar baseline yang wajar.
50
- - Deployment multi-region.
51
- - Analitik atau pelaporan tingkat lanjut.
52
-
53
- ---
54
-
55
- Dokumen ini adalah referensi hidup. Perbarui saat ruang lingkup proyek berkembang.
@@ -1,79 +0,0 @@
1
- # Project Brief: {{projectName}}
2
-
3
- Generated by Agentic-Senior-Core CLI v{{cliVersion}}
4
- Generated at: {{generatedAt}}
5
- Template version: {{templateVersion}}
6
-
7
- ---
8
-
9
- ## Overview
10
-
11
- **Project name**: {{projectName}}
12
- **Description**: {{projectDescription}}
13
- **Primary domain**: {{primaryDomain}}
14
-
15
- ## Technology Decisions
16
-
17
- **Stack**: {{stackDisplayName}}
18
- {{#if additionalStackDisplayNames}}
19
- **Additional stacks**:
20
- {{#each additionalStackDisplayNames}}
21
- - {{this}}
22
- {{/each}}
23
- {{/if}}
24
- **Blueprint**: {{blueprintDisplayName}}
25
- {{#if additionalBlueprintDisplayNames}}
26
- **Additional blueprints**:
27
- {{#each additionalBlueprintDisplayNames}}
28
- - {{this}}
29
- {{/each}}
30
- {{/if}}
31
- **Database**: {{databaseChoice}}
32
- **Auth strategy**: {{authStrategy}}
33
- **Runtime environment target**: {{runtimeEnvironmentLabel}}
34
- **Containerization strategy**: {{dockerStrategy}}
35
-
36
- {{#if hasDocker}}
37
- ## Containerization Workflow (Dynamic)
38
-
39
- - Docker is enabled for this project: **{{dockerStrategy}}**.
40
- - Docker setup must be generated dynamically by AI based on current dependencies and runtime constraints.
41
- - Do not use fixed boilerplate templates that ignore actual project structure.
42
- {{dockerDevelopmentGuidance}}
43
- {{dockerProductionGuidance}}
44
-
45
- - Keep development and production container strategy separated to avoid environment drift.
46
- {{/if}}
47
-
48
- ## Key Features
49
-
50
- {{#each features}}
51
- - {{this}}
52
- {{/each}}
53
-
54
- ## Additional Context
55
-
56
- {{additionalContext}}
57
-
58
- ## Constraints and Assumptions
59
-
60
- - This project follows the governance rules defined in `.agent-context/rules/`.
61
- - Stack conventions are defined in `.agent-context/stacks/{{stackFileName}}`.
62
- - Architecture patterns follow `.agent-context/blueprints/{{blueprintFileName}}`.
63
- - All code must pass the review checklist at `.agent-context/review-checklists/pr-checklist.md`.
64
-
65
- ## Goals
66
-
67
- 1. Deliver a working {{primaryDomain}} using the {{stackDisplayName}} stack.
68
- 2. Follow production-grade engineering standards from day one.
69
- 3. Keep architecture decisions documented and traceable.
70
-
71
- ## Non-Goals (Initial Scope)
72
-
73
- - Performance optimization beyond sensible defaults.
74
- - Multi-region deployment.
75
- - Advanced analytics or reporting.
76
-
77
- ---
78
-
79
- This document is a living reference. Update it as the project scope evolves.
@@ -1,105 +0,0 @@
1
- #!/usr/bin/env pwsh
2
-
3
- [CmdletBinding()]
4
- param(
5
- [string]$TargetDirectory = ".",
6
- [ValidateSet("beginner", "balanced", "strict")]
7
- [string]$Profile,
8
- [string]$Stack,
9
- [string]$Blueprint,
10
- [ValidateSet("true", "false")]
11
- [string]$Ci,
12
- [switch]$Newbie,
13
- [string]$RepositoryUrl = "https://github.com/fatidaprilian/Agentic-Senior-Core.git",
14
- [string[]]$AdditionalArguments
15
- )
16
-
17
- $ErrorActionPreference = "Stop"
18
-
19
- function Resolve-AbsolutePath {
20
- param([string]$PathValue)
21
-
22
- if ([string]::IsNullOrWhiteSpace($PathValue)) {
23
- throw "TargetDirectory cannot be empty."
24
- }
25
-
26
- if ([System.IO.Path]::IsPathRooted($PathValue)) {
27
- return [System.IO.Path]::GetFullPath($PathValue)
28
- }
29
-
30
- $combinedPath = Join-Path -Path (Get-Location) -ChildPath $PathValue
31
- return [System.IO.Path]::GetFullPath($combinedPath)
32
- }
33
-
34
- function New-TemporaryDirectory {
35
- $temporaryDirectoryName = "agentic-senior-core-bootstrap-$(Get-Date -Format 'yyyyMMddHHmmssfff')"
36
- $temporaryDirectoryPath = Join-Path -Path ([System.IO.Path]::GetTempPath()) -ChildPath $temporaryDirectoryName
37
- New-Item -ItemType Directory -Path $temporaryDirectoryPath | Out-Null
38
- return $temporaryDirectoryPath
39
- }
40
-
41
- $targetDirectoryPath = Resolve-AbsolutePath -PathValue $TargetDirectory
42
- if (-not (Test-Path -Path $targetDirectoryPath -PathType Container)) {
43
- throw "Target directory does not exist: $targetDirectoryPath"
44
- }
45
-
46
- $temporaryRootDirectoryPath = New-TemporaryDirectory
47
- $bootstrapRepositoryPath = Join-Path -Path $temporaryRootDirectoryPath -ChildPath "Agentic-Senior-Core"
48
-
49
- try {
50
- if (-not (Get-Command git -ErrorAction SilentlyContinue)) {
51
- throw "Git is required but was not found in PATH."
52
- }
53
-
54
- if (-not (Get-Command node -ErrorAction SilentlyContinue)) {
55
- throw "Node.js is required but was not found in PATH."
56
- }
57
-
58
- Write-Host "[Agentic-Senior-Core] Cloning bootstrap repository into temporary directory..."
59
- & git clone --depth 1 $RepositoryUrl $bootstrapRepositoryPath | Out-Null
60
- if ($LASTEXITCODE -ne 0) {
61
- throw "Failed to clone repository from $RepositoryUrl"
62
- }
63
-
64
- $cliScriptPath = Join-Path -Path $bootstrapRepositoryPath -ChildPath "bin\agentic-senior-core.js"
65
- if (-not (Test-Path -Path $cliScriptPath -PathType Leaf)) {
66
- throw "CLI entry file not found: $cliScriptPath"
67
- }
68
-
69
- $cliArguments = @($cliScriptPath, "init", $targetDirectoryPath)
70
-
71
- if ($Profile) {
72
- $cliArguments += @("--profile", $Profile)
73
- }
74
-
75
- if ($Stack) {
76
- $cliArguments += @("--stack", $Stack)
77
- }
78
-
79
- if ($Blueprint) {
80
- $cliArguments += @("--blueprint", $Blueprint)
81
- }
82
-
83
- if ($Ci) {
84
- $cliArguments += @("--ci", $Ci)
85
- }
86
-
87
- if ($Newbie.IsPresent) {
88
- $cliArguments += "--newbie"
89
- }
90
-
91
- if ($AdditionalArguments) {
92
- $cliArguments += $AdditionalArguments
93
- }
94
-
95
- Write-Host "[Agentic-Senior-Core] Running CLI against target directory: $targetDirectoryPath"
96
- & node @cliArguments
97
- if ($LASTEXITCODE -ne 0) {
98
- throw "CLI exited with a non-zero status code: $LASTEXITCODE"
99
- }
100
- }
101
- finally {
102
- if (Test-Path -Path $temporaryRootDirectoryPath) {
103
- Remove-Item -Path $temporaryRootDirectoryPath -Recurse -Force
104
- }
105
- }
@@ -1,131 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- set -euo pipefail
4
-
5
- TARGET_DIRECTORY="."
6
- PROFILE=""
7
- STACK=""
8
- BLUEPRINT=""
9
- CI_VALUE=""
10
- ENABLE_NEWBIE_MODE="false"
11
- REPOSITORY_URL="https://github.com/fatidaprilian/Agentic-Senior-Core.git"
12
- ADDITIONAL_ARGUMENTS=()
13
-
14
- while (($# > 0)); do
15
- case "$1" in
16
- --profile)
17
- PROFILE="${2:-}"
18
- shift 2
19
- ;;
20
- --profile=*)
21
- PROFILE="${1#*=}"
22
- shift
23
- ;;
24
- --stack)
25
- STACK="${2:-}"
26
- shift 2
27
- ;;
28
- --stack=*)
29
- STACK="${1#*=}"
30
- shift
31
- ;;
32
- --blueprint)
33
- BLUEPRINT="${2:-}"
34
- shift 2
35
- ;;
36
- --blueprint=*)
37
- BLUEPRINT="${1#*=}"
38
- shift
39
- ;;
40
- --ci)
41
- CI_VALUE="${2:-}"
42
- shift 2
43
- ;;
44
- --ci=*)
45
- CI_VALUE="${1#*=}"
46
- shift
47
- ;;
48
- --newbie)
49
- ENABLE_NEWBIE_MODE="true"
50
- shift
51
- ;;
52
- --repository-url)
53
- REPOSITORY_URL="${2:-}"
54
- shift 2
55
- ;;
56
- --repository-url=*)
57
- REPOSITORY_URL="${1#*=}"
58
- shift
59
- ;;
60
- --)
61
- shift
62
- ADDITIONAL_ARGUMENTS+=("$@")
63
- break
64
- ;;
65
- -* )
66
- echo "Unknown option: $1" >&2
67
- exit 1
68
- ;;
69
- *)
70
- TARGET_DIRECTORY="$1"
71
- shift
72
- ;;
73
- esac
74
- done
75
-
76
- if ! command -v git >/dev/null 2>&1; then
77
- echo "Git is required but was not found in PATH." >&2
78
- exit 1
79
- fi
80
-
81
- if ! command -v node >/dev/null 2>&1; then
82
- echo "Node.js is required but was not found in PATH." >&2
83
- exit 1
84
- fi
85
-
86
- RESOLVED_TARGET_DIRECTORY="$(cd "$TARGET_DIRECTORY" && pwd)"
87
- TEMPORARY_ROOT_DIRECTORY="$(mktemp -d 2>/dev/null || mktemp -d -t agentic-senior-core-bootstrap)"
88
- BOOTSTRAP_REPOSITORY_PATH="$TEMPORARY_ROOT_DIRECTORY/Agentic-Senior-Core"
89
-
90
- cleanup_temporary_directory() {
91
- rm -rf "$TEMPORARY_ROOT_DIRECTORY"
92
- }
93
- trap cleanup_temporary_directory EXIT
94
-
95
- echo "[Agentic-Senior-Core] Cloning bootstrap repository into temporary directory..."
96
- git clone --depth 1 "$REPOSITORY_URL" "$BOOTSTRAP_REPOSITORY_PATH" >/dev/null
97
-
98
- CLI_SCRIPT_PATH="$BOOTSTRAP_REPOSITORY_PATH/bin/agentic-senior-core.js"
99
- if [[ ! -f "$CLI_SCRIPT_PATH" ]]; then
100
- echo "CLI entry file not found: $CLI_SCRIPT_PATH" >&2
101
- exit 1
102
- fi
103
-
104
- CLI_ARGUMENTS=("$CLI_SCRIPT_PATH" init "$RESOLVED_TARGET_DIRECTORY")
105
-
106
- if [[ -n "$PROFILE" ]]; then
107
- CLI_ARGUMENTS+=(--profile "$PROFILE")
108
- fi
109
-
110
- if [[ -n "$STACK" ]]; then
111
- CLI_ARGUMENTS+=(--stack "$STACK")
112
- fi
113
-
114
- if [[ -n "$BLUEPRINT" ]]; then
115
- CLI_ARGUMENTS+=(--blueprint "$BLUEPRINT")
116
- fi
117
-
118
- if [[ -n "$CI_VALUE" ]]; then
119
- CLI_ARGUMENTS+=(--ci "$CI_VALUE")
120
- fi
121
-
122
- if [[ "$ENABLE_NEWBIE_MODE" == "true" ]]; then
123
- CLI_ARGUMENTS+=(--newbie)
124
- fi
125
-
126
- if ((${#ADDITIONAL_ARGUMENTS[@]} > 0)); then
127
- CLI_ARGUMENTS+=("${ADDITIONAL_ARGUMENTS[@]}")
128
- fi
129
-
130
- echo "[Agentic-Senior-Core] Running CLI against target directory: $RESOLVED_TARGET_DIRECTORY"
131
- node "${CLI_ARGUMENTS[@]}"
@@ -1,76 +0,0 @@
1
- export const SKILL_TIER_MINIMUMS = {
2
- standard: { minWords: 60, minHeadings: 1, minChecklistItems: 0, minCodeBlocks: 0 },
3
- advance: { minWords: 100, minHeadings: 2, minChecklistItems: 1, minCodeBlocks: 0 },
4
- expert: { minWords: 130, minHeadings: 3, minChecklistItems: 1, minCodeBlocks: 0 },
5
- above: { minWords: 240, minHeadings: 3, minChecklistItems: 1, minCodeBlocks: 1 },
6
- };
7
-
8
- export function countWords(markdownContent) {
9
- return markdownContent
10
- .replace(/```[\s\S]*?```/g, ' ')
11
- .replace(/[^A-Za-z0-9_\-\s]/g, ' ')
12
- .trim()
13
- .split(/\s+/)
14
- .filter(Boolean).length;
15
- }
16
-
17
- export function countMarkdownHeadings(markdownContent) {
18
- const headingMatches = markdownContent.match(/^#{2,6}\s+/gm);
19
- return headingMatches ? headingMatches.length : 0;
20
- }
21
-
22
- export function countChecklistItems(markdownContent) {
23
- const checklistMatches = markdownContent.match(/^\s*[-*]\s+\[[ xX]\]\s+/gm);
24
- return checklistMatches ? checklistMatches.length : 0;
25
- }
26
-
27
- export function countCodeBlocks(markdownContent) {
28
- const fenceMatches = markdownContent.match(/```/g);
29
- if (!fenceMatches) {
30
- return 0;
31
- }
32
-
33
- return Math.floor(fenceMatches.length / 2);
34
- }
35
-
36
- export function extractSkillTier(markdownContent) {
37
- const normalizedMarkdownContent = markdownContent.replace(/\*\*/g, '');
38
- const tierMatch = normalizedMarkdownContent.match(/\bTier\s*:\s*`?(standard|advance|expert|above)`?\b/i);
39
- return tierMatch ? tierMatch[1].toLowerCase() : null;
40
- }
41
-
42
- export function validateSkillTopicContent(markdownContent) {
43
- const detectedTier = extractSkillTier(markdownContent);
44
-
45
- if (!detectedTier) {
46
- return { isValid: false, reason: 'missing-tier' };
47
- }
48
-
49
- const minimumRules = SKILL_TIER_MINIMUMS[detectedTier];
50
- if (!minimumRules) {
51
- return { isValid: false, reason: 'unsupported-tier', detectedTier };
52
- }
53
-
54
- const wordCount = countWords(markdownContent);
55
- const headingCount = countMarkdownHeadings(markdownContent);
56
- const checklistCount = countChecklistItems(markdownContent);
57
- const codeBlockCount = countCodeBlocks(markdownContent);
58
-
59
- if (wordCount < minimumRules.minWords) {
60
- return { isValid: false, reason: 'word-count', detectedTier, wordCount, minimumRules };
61
- }
62
-
63
- if (headingCount < minimumRules.minHeadings) {
64
- return { isValid: false, reason: 'heading-count', detectedTier, headingCount, minimumRules };
65
- }
66
-
67
- if (checklistCount < minimumRules.minChecklistItems) {
68
- return { isValid: false, reason: 'checklist-count', detectedTier, checklistCount, minimumRules };
69
- }
70
-
71
- if (codeBlockCount < minimumRules.minCodeBlocks) {
72
- return { isValid: false, reason: 'code-block-count', detectedTier, codeBlockCount, minimumRules };
73
- }
74
-
75
- return { isValid: true, detectedTier, wordCount, headingCount, checklistCount, codeBlockCount, minimumRules };
76
- }