@atlashub/smartstack-cli 2.0.0 β 2.2.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.
- package/.documentation/agents.html +147 -40
- package/.documentation/apex.html +1 -1
- package/.documentation/business-analyse.html +3 -3
- package/.documentation/cli-commands.html +2 -2
- package/.documentation/commands.html +14 -14
- package/.documentation/efcore.html +14 -14
- package/.documentation/gitflow.html +12 -12
- package/.documentation/hooks.html +41 -3
- package/.documentation/index.html +1 -1
- package/.documentation/init.html +2 -2
- package/.documentation/installation.html +11 -11
- package/.documentation/js/app.js +1 -1
- package/.documentation/ralph-loop.html +1 -1
- package/.documentation/test-web.html +4 -4
- package/dist/index.js +19 -11
- package/dist/index.js.map +1 -1
- package/dist/mcp-entry.mjs +57595 -4569
- package/dist/mcp-entry.mjs.map +1 -1
- package/package.json +1 -1
- package/templates/agents/ba-reader.md +250 -0
- package/templates/agents/ba-writer.md +210 -0
- package/templates/agents/docs-context-reader.md +51 -33
- package/templates/skills/_shared.md +2 -0
- package/templates/skills/business-analyse/SKILL.md +120 -108
- package/templates/skills/business-analyse/_shared.md +191 -160
- package/templates/skills/business-analyse/patterns/suggestion-catalog.md +478 -0
- package/templates/skills/business-analyse/questionnaire/01-context.md +3 -15
- package/templates/skills/business-analyse/questionnaire/08-performance.md +7 -21
- package/templates/skills/business-analyse/questionnaire/09-constraints.md +0 -13
- package/templates/skills/business-analyse/questionnaire/10-documentation.md +0 -13
- package/templates/skills/business-analyse/questionnaire.md +72 -76
- package/templates/skills/business-analyse/react/components.md +317 -154
- package/templates/skills/business-analyse/react/i18n-template.md +167 -106
- package/templates/skills/business-analyse/react/schema.md +325 -106
- package/templates/skills/business-analyse/schemas/feature-schema.json +690 -0
- package/templates/skills/business-analyse/steps/step-00-init.md +395 -285
- package/templates/skills/business-analyse/steps/step-01-analyse.md +505 -0
- package/templates/skills/business-analyse/steps/step-02-specify.md +833 -0
- package/templates/skills/business-analyse/steps/step-03-validate.md +862 -0
- package/templates/skills/business-analyse/steps/step-04-handoff.md +1593 -0
- package/templates/skills/business-analyse/templates/tpl-handoff.md +95 -43
- package/templates/skills/controller/templates.md +82 -0
- package/templates/skills/efcore/references/zero-downtime-patterns.md +227 -0
- package/templates/skills/efcore/steps/migration/step-03-validate.md +19 -0
- package/templates/skills/review-code/SKILL.md +4 -2
- package/templates/skills/review-code/references/owasp-api-top10.md +243 -0
- package/templates/skills/review-code/references/security-checklist.md +86 -1
- package/templates/skills/review-code/references/smartstack-conventions.md +166 -0
- package/templates/skills/workflow/SKILL.md +27 -0
- package/templates/skills/business-analyse/steps/step-01-discover.md +0 -737
- package/templates/skills/business-analyse/steps/step-02-analyse.md +0 -299
- package/templates/skills/business-analyse/steps/step-03-specify.md +0 -409
- package/templates/skills/business-analyse/steps/step-04-validate.md +0 -313
- package/templates/skills/business-analyse/steps/step-05-handoff.md +0 -658
- package/templates/skills/business-analyse/steps/step-06-doc-html.md +0 -320
- package/templates/skills/business-analyse/templates/00-context.md +0 -105
- package/templates/skills/business-analyse/templates/tpl-brd.md +0 -97
- package/templates/skills/business-analyse/templates/tpl-discovery.md +0 -78
- package/templates/skills/business-analyse/tracking/change-template.md +0 -30
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<header class="global-header">
|
|
13
13
|
<div class="logo">SS</div>
|
|
14
14
|
<span class="site-title">SmartStack CLI</span>
|
|
15
|
-
<span class="version-badge">
|
|
15
|
+
<span class="version-badge">v2.0.0</span>
|
|
16
16
|
<div class="header-divider"></div>
|
|
17
17
|
<span class="page-title">@atlashub/smartstack-cli</span>
|
|
18
18
|
<!-- Language Select -->
|
package/.documentation/init.html
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<header class="global-header">
|
|
13
13
|
<div class="logo">SS</div>
|
|
14
14
|
<span class="site-title">SmartStack CLI</span>
|
|
15
|
-
<span class="version-badge">
|
|
15
|
+
<span class="version-badge">v2.0.0</span>
|
|
16
16
|
<div class="header-divider"></div>
|
|
17
17
|
<span class="page-title">Project Init</span>
|
|
18
18
|
<nav class="breadcrumb">
|
|
@@ -198,7 +198,7 @@
|
|
|
198
198
|
<span data-lang="fr">Validation conventions, scaffolding, API docs</span>
|
|
199
199
|
<span data-lang="en">Conventions validation, scaffolding, API docs</span>
|
|
200
200
|
</td>
|
|
201
|
-
<td><code>
|
|
201
|
+
<td><code>claude mcp add smartstack -- npx -p @atlashub/smartstack-cli smartstack-mcp</code> <em data-lang="fr">(auto via install)</em><em data-lang="en">(auto via install)</em></td>
|
|
202
202
|
</tr>
|
|
203
203
|
<tr>
|
|
204
204
|
<td><strong>Context7 MCP</strong></td>
|
|
@@ -302,7 +302,7 @@
|
|
|
302
302
|
<header class="global-header">
|
|
303
303
|
<div class="logo">SS</div>
|
|
304
304
|
<span class="site-title">SmartStack CLI</span>
|
|
305
|
-
<span class="version-badge">
|
|
305
|
+
<span class="version-badge">v2.0.0</span>
|
|
306
306
|
<div class="header-divider"></div>
|
|
307
307
|
<span class="page-title">Installation</span>
|
|
308
308
|
<nav class="breadcrumb">
|
|
@@ -749,25 +749,25 @@ smartstack install</code></pre>
|
|
|
749
749
|
</div>
|
|
750
750
|
</li>
|
|
751
751
|
|
|
752
|
-
<!-- Step 6: SmartStack MCP Server -->
|
|
752
|
+
<!-- Step 6: SmartStack MCP Server (bundled) -->
|
|
753
753
|
<li class="checklist-item" data-step="6">
|
|
754
754
|
<span class="checklist-number">6</span>
|
|
755
755
|
<div class="checklist-checkbox" onclick="toggleStep(6)"></div>
|
|
756
756
|
<div class="checklist-content">
|
|
757
757
|
<div class="checklist-title">
|
|
758
|
-
<span data-lang="fr">
|
|
759
|
-
<span data-lang="en">
|
|
758
|
+
<span data-lang="fr">SmartStack MCP Server (inclus dans la CLI)</span>
|
|
759
|
+
<span data-lang="en">SmartStack MCP Server (bundled in CLI)</span>
|
|
760
760
|
</div>
|
|
761
761
|
<div class="checklist-description">
|
|
762
|
-
<p data-lang="fr">
|
|
763
|
-
<p data-lang="en">
|
|
762
|
+
<p data-lang="fr">Le serveur MCP SmartStack est <strong>inclus dans la CLI</strong>. Il est enregistre automatiquement lors du <code>smartstack install</code>. Si besoin d'un enregistrement manuel :</p>
|
|
763
|
+
<p data-lang="en">The SmartStack MCP server is <strong>bundled in the CLI</strong>. It is automatically registered during <code>smartstack install</code>. For manual registration if needed:</p>
|
|
764
764
|
<div class="code-block">
|
|
765
765
|
<button class="copy-btn">Copy</button>
|
|
766
|
-
<pre><code>#
|
|
767
|
-
|
|
766
|
+
<pre><code># Enregistrement automatique (recommande)
|
|
767
|
+
smartstack install --force
|
|
768
768
|
|
|
769
|
-
#
|
|
770
|
-
claude mcp add smartstack -- smartstack-mcp</code></pre>
|
|
769
|
+
# Enregistrement manuel (si necessaire)
|
|
770
|
+
claude mcp add smartstack -- npx -p @atlashub/smartstack-cli smartstack-mcp</code></pre>
|
|
771
771
|
</div>
|
|
772
772
|
</div>
|
|
773
773
|
</div>
|
|
@@ -810,7 +810,7 @@ $env:CONTEXT7_API_KEY = "<span class="context7-key-placeholder" style="color: va
|
|
|
810
810
|
npm install -g @upstash/context7-mcp
|
|
811
811
|
|
|
812
812
|
# 3. Enregistrer dans Claude
|
|
813
|
-
claude mcp add context7 -- context7-mcp</code></pre>
|
|
813
|
+
claude mcp add context7 -- npx @upstash/context7-mcp</code></pre>
|
|
814
814
|
</div>
|
|
815
815
|
</div>
|
|
816
816
|
</div>
|
package/.documentation/js/app.js
CHANGED
|
@@ -398,7 +398,7 @@ function initSearch() {
|
|
|
398
398
|
{ page: 'installation.html', icon: 'π¦', title: { fr: 'Installation', en: 'Installation' }, section: { fr: 'PrΓ©requis', en: 'Prerequisites' }, anchor: 'prerequisites',
|
|
399
399
|
keywords: 'prΓ©requis prerequisites nodejs node version 18 npm git' },
|
|
400
400
|
{ page: 'installation.html', icon: 'π¦', title: { fr: 'Installation', en: 'Installation' }, section: { fr: 'Installation globale', en: 'Global Installation' }, anchor: 'global-install',
|
|
401
|
-
keywords: 'npm install global atlashub
|
|
401
|
+
keywords: 'npm install global atlashub smartstack smartstack-cli registry package' },
|
|
402
402
|
|
|
403
403
|
// GitFlow
|
|
404
404
|
{ page: 'gitflow.html', icon: 'π', title: { fr: 'GitFlow', en: 'GitFlow' }, section: '', anchor: '',
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<header class="global-header">
|
|
13
13
|
<div class="logo">SS</div>
|
|
14
14
|
<span class="site-title">SmartStack CLI</span>
|
|
15
|
-
<span class="version-badge">
|
|
15
|
+
<span class="version-badge">v2.0.0</span>
|
|
16
16
|
<div class="header-divider"></div>
|
|
17
17
|
<span class="page-title">Ralph Loop</span>
|
|
18
18
|
<nav class="breadcrumb">
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<header class="global-header">
|
|
13
13
|
<div class="logo">SS</div>
|
|
14
14
|
<span class="site-title">SmartStack CLI</span>
|
|
15
|
-
<span class="version-badge">
|
|
15
|
+
<span class="version-badge">v2.0.0</span>
|
|
16
16
|
<div class="header-divider"></div>
|
|
17
17
|
<span class="page-title">Test Web</span>
|
|
18
18
|
<nav class="breadcrumb">
|
|
@@ -327,8 +327,8 @@
|
|
|
327
327
|
<span data-lang="en">Pre-configured Templates</span>
|
|
328
328
|
</h2>
|
|
329
329
|
|
|
330
|
-
<p data-lang="fr">
|
|
331
|
-
<p data-lang="en">
|
|
330
|
+
<p data-lang="fr">SmartStack CLI inclut des templates de configuration pour les cas d'usage courants :</p>
|
|
331
|
+
<p data-lang="en">SmartStack CLI includes configuration templates for common use cases:</p>
|
|
332
332
|
|
|
333
333
|
<div class="table-container">
|
|
334
334
|
<table>
|
|
@@ -397,7 +397,7 @@
|
|
|
397
397
|
<pre><code>TEST WEB RESULTS
|
|
398
398
|
ββββββββββββββββββββββββββββββββ
|
|
399
399
|
GitHub Repository 200 OK "README" found
|
|
400
|
-
npm Package 200 OK "
|
|
400
|
+
npm Package 200 OK "smartstack-cli" found
|
|
401
401
|
Google Indexation Results Found in search
|
|
402
402
|
|
|
403
403
|
Status: 3/3 PASS
|
package/dist/index.js
CHANGED
|
@@ -112215,6 +112215,10 @@ function getPackageVersion() {
|
|
|
112215
112215
|
return "0.0.0";
|
|
112216
112216
|
}
|
|
112217
112217
|
}
|
|
112218
|
+
function processTemplateVariables(content, version2) {
|
|
112219
|
+
const sanitized = version2.replace(/[^0-9a-zA-Z.\-+]/g, "");
|
|
112220
|
+
return content.replace(/\{\{SMARTSTACK_VERSION\}\}/g, sanitized);
|
|
112221
|
+
}
|
|
112218
112222
|
var DEFAULT_PLUGINS = [];
|
|
112219
112223
|
function getClaudeDir(global3) {
|
|
112220
112224
|
if (global3) {
|
|
@@ -112250,6 +112254,7 @@ async function installCommands(options = {}) {
|
|
|
112250
112254
|
};
|
|
112251
112255
|
logger.info(`Installing to: ${claudeDir}`);
|
|
112252
112256
|
const dirsToInstall = installAll ? INSTALL_DIRS : INSTALL_DIRS.filter((d) => components.includes(d));
|
|
112257
|
+
const version2 = getPackageVersion();
|
|
112253
112258
|
for (const dir of dirsToInstall) {
|
|
112254
112259
|
const sourceDir = (0, import_path.join)(TEMPLATES_DIR, dir);
|
|
112255
112260
|
const targetDir = (0, import_path.join)(claudeDir, dir);
|
|
@@ -112270,7 +112275,13 @@ async function installCommands(options = {}) {
|
|
|
112270
112275
|
continue;
|
|
112271
112276
|
}
|
|
112272
112277
|
await import_fs_extra.default.ensureDir((0, import_path.dirname)(dest));
|
|
112273
|
-
|
|
112278
|
+
if (file.endsWith(".md")) {
|
|
112279
|
+
const content = await import_fs_extra.default.readFile(src, "utf-8");
|
|
112280
|
+
const processed = processTemplateVariables(content, version2);
|
|
112281
|
+
await import_fs_extra.default.writeFile(dest, processed, "utf-8");
|
|
112282
|
+
} else {
|
|
112283
|
+
await import_fs_extra.default.copy(src, dest, { overwrite: options.force });
|
|
112284
|
+
}
|
|
112274
112285
|
result.installed++;
|
|
112275
112286
|
result.installedFiles.push(relativePath);
|
|
112276
112287
|
if (file.endsWith(".md") && !file.includes("/")) {
|
|
@@ -115452,7 +115463,7 @@ var updateCommand = new Command("update").description("Update commands to the la
|
|
|
115452
115463
|
// src/commands/docs.ts
|
|
115453
115464
|
var import_path3 = require("path");
|
|
115454
115465
|
var import_fs2 = require("fs");
|
|
115455
|
-
var DOCS_PAGES = ["index", "installation", "commands", "agents", "apex", "business-analyse", "gitflow", "efcore", "hooks", "test-web"];
|
|
115466
|
+
var DOCS_PAGES = ["index", "installation", "init", "commands", "cli-commands", "agents", "apex", "business-analyse", "gitflow", "efcore", "hooks", "ralph-loop", "test-web"];
|
|
115456
115467
|
var docsCommand = new Command("docs").alias("d").description("Open SmartStack documentation in browser").argument("[page]", "Documentation page to open", "index").option("-l, --list", "List available documentation pages").action(async (page, options) => {
|
|
115457
115468
|
if (options.list) {
|
|
115458
115469
|
logger.header("Available Documentation Pages");
|
|
@@ -125428,15 +125439,12 @@ async function promptSqlCredentials() {
|
|
|
125428
125439
|
}
|
|
125429
125440
|
function detectSmartStackApp() {
|
|
125430
125441
|
const cwd = process.cwd();
|
|
125431
|
-
const
|
|
125432
|
-
if ((0, import_fs4.existsSync)(
|
|
125433
|
-
const
|
|
125434
|
-
|
|
125435
|
-
|
|
125436
|
-
|
|
125437
|
-
if (apiFolder) {
|
|
125438
|
-
return (0, import_path9.join)(srcDir, apiFolder);
|
|
125439
|
-
}
|
|
125442
|
+
const srcDir = (0, import_path9.join)(cwd, "src");
|
|
125443
|
+
if ((0, import_fs4.existsSync)(srcDir)) {
|
|
125444
|
+
const folders = (0, import_fs4.readdirSync)(srcDir);
|
|
125445
|
+
const apiFolder = folders.find((f) => f.endsWith(".Api"));
|
|
125446
|
+
if (apiFolder) {
|
|
125447
|
+
return (0, import_path9.join)(srcDir, apiFolder);
|
|
125440
125448
|
}
|
|
125441
125449
|
}
|
|
125442
125450
|
const possiblePaths = [
|