@atlashub/smartstack-cli 4.51.0 → 4.53.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 (28) hide show
  1. package/dist/index.js +53 -1
  2. package/dist/index.js.map +1 -1
  3. package/package.json +1 -1
  4. package/templates/skills/apex/references/core-seed-data.md +15 -0
  5. package/templates/skills/apex/references/error-classification.md +27 -3
  6. package/templates/skills/apex/references/post-checks.md +3 -1
  7. package/templates/skills/apex/steps/step-00-init.md +57 -0
  8. package/templates/skills/apex/steps/step-03-execute.md +33 -5
  9. package/templates/skills/apex/steps/step-03b-layer1-seed.md +18 -0
  10. package/templates/skills/apex/steps/step-03d-layer3-frontend.md +3 -0
  11. package/templates/skills/apex/steps/step-04-examine.md +35 -0
  12. package/templates/skills/business-analyse/references/canonical-json-formats.md +200 -0
  13. package/templates/skills/business-analyse/steps/step-03-specify.md +94 -20
  14. package/templates/skills/business-analyse-design/steps/step-01-screens.md +41 -4
  15. package/templates/skills/business-analyse-develop/references/init-resume-recovery.md +54 -0
  16. package/templates/skills/business-analyse-develop/steps/step-00-init.md +10 -3
  17. package/templates/skills/business-analyse-develop/steps/step-01-task.md +14 -2
  18. package/templates/skills/business-analyse-develop/steps/step-04-check.md +12 -2
  19. package/templates/skills/business-analyse-handoff/references/entity-canonicalization.md +158 -0
  20. package/templates/skills/business-analyse-handoff/steps/step-01-transform.md +26 -3
  21. package/templates/skills/business-analyse-handoff/steps/step-02-export.md +14 -0
  22. package/templates/skills/business-analyse-html/SKILL.md +4 -0
  23. package/templates/skills/business-analyse-html/references/data-build.md +24 -17
  24. package/templates/skills/business-analyse-html/references/data-mapping.md +79 -35
  25. package/templates/skills/business-analyse-html/references/output-modes.md +2 -1
  26. package/templates/skills/business-analyse-html/steps/step-01-collect.md +7 -2
  27. package/templates/skills/business-analyse-html/steps/step-02-build-data.md +155 -40
  28. package/templates/skills/business-analyse-html/steps/step-04-verify.md +22 -4
package/dist/index.js CHANGED
@@ -112648,6 +112648,29 @@ var PACKAGE_ROOT = (0, import_path2.join)(__dirname, "..");
112648
112648
  var TEMPLATES_DIR = (0, import_path2.join)(PACKAGE_ROOT, "templates");
112649
112649
  var INSTALL_DIRS = ["agents", "hooks", "skills", "scripts"];
112650
112650
  var MANIFEST_FILE = ".smartstack-manifest.json";
112651
+ function setTemplatesDir(dir) {
112652
+ TEMPLATES_DIR = dir;
112653
+ }
112654
+ function getTemplatesDir() {
112655
+ return TEMPLATES_DIR;
112656
+ }
112657
+ function detectDevTemplates(devPath) {
112658
+ const templatesPath = (0, import_path2.join)(devPath, "templates");
112659
+ const packagePath = (0, import_path2.join)(devPath, "package.json");
112660
+ try {
112661
+ if (!import_fs_extra2.default.existsSync(packagePath) || !import_fs_extra2.default.existsSync(templatesPath)) {
112662
+ return null;
112663
+ }
112664
+ const pkg2 = JSON.parse(import_fs_extra2.default.readFileSync(packagePath, "utf-8"));
112665
+ if (pkg2.name === "@atlashub/smartstack-cli") {
112666
+ if (import_fs_extra2.default.existsSync((0, import_path2.join)(templatesPath, "skills"))) {
112667
+ return templatesPath;
112668
+ }
112669
+ }
112670
+ } catch {
112671
+ }
112672
+ return null;
112673
+ }
112651
112674
  async function readManifest(claudeDir) {
112652
112675
  const manifestPath = (0, import_path2.join)(claudeDir, MANIFEST_FILE);
112653
112676
  try {
@@ -113353,14 +113376,43 @@ async function findFiles(dir, extension, depth = 3) {
113353
113376
  }
113354
113377
 
113355
113378
  // src/commands/install.ts
113356
- var installCommand = new Command("install").alias("i").description("Install SmartStack commands, agents, and hooks").option("-f, --force", "Overwrite existing files").option("-g, --global", "Install to user directory ~/.claude (default)", true).option("-l, --local", "Install to project directory ./.claude").option("--commands-only", "Install only commands").option("--agents-only", "Install only agents").option("--hooks-only", "Install only hooks").option("--no-config", "Skip config file creation").option("--no-plugins", "Skip Claude Code plugin installation").action(async (options) => {
113379
+ var installCommand = new Command("install").alias("i").description("Install SmartStack commands, agents, and hooks").option("-f, --force", "Overwrite existing files").option("-g, --global", "Install to user directory ~/.claude (default)", true).option("-l, --local", "Install to project directory ./.claude").option("--commands-only", "Install only commands").option("--agents-only", "Install only agents").option("--hooks-only", "Install only hooks").option("--no-config", "Skip config file creation").option("--no-plugins", "Skip Claude Code plugin installation").option("--dev [path]", "Install from local dev directory (default: auto-detect SmartStack.cli repo)").action(async (options) => {
113357
113380
  logger.header("Installing SmartStack Commands");
113381
+ if (options.dev !== void 0) {
113382
+ let devPath;
113383
+ if (typeof options.dev === "string" && options.dev !== "") {
113384
+ devPath = options.dev;
113385
+ } else {
113386
+ const candidates = [
113387
+ (0, import_path4.join)(process.cwd()),
113388
+ (0, import_path4.join)(process.cwd(), "..", "SmartStack.cli", "02-Develop"),
113389
+ (0, import_path4.join)(process.cwd(), "..", "..", "SmartStack.cli", "02-Develop")
113390
+ ];
113391
+ const found = candidates.find((c) => detectDevTemplates(c) !== null);
113392
+ if (!found) {
113393
+ logger.error("Cannot auto-detect SmartStack.cli dev directory.");
113394
+ logger.error("Provide the path explicitly: ss install --dev /path/to/SmartStack.cli/02-Develop");
113395
+ process.exit(1);
113396
+ }
113397
+ devPath = found;
113398
+ }
113399
+ const devTemplates = detectDevTemplates(devPath);
113400
+ if (!devTemplates) {
113401
+ logger.error(`Not a valid SmartStack CLI dev directory: ${devPath}`);
113402
+ logger.error('Expected: package.json with name "@atlashub/smartstack-cli" + templates/skills/');
113403
+ process.exit(1);
113404
+ }
113405
+ setTemplatesDir(devTemplates);
113406
+ logger.info(source_default.yellow(`DEV MODE: Reading templates from ${devTemplates}`));
113407
+ console.log();
113408
+ }
113358
113409
  const isGlobal = !options.local;
113359
113410
  const spinner = logger.spinner("Analyzing environment...");
113360
113411
  const project = await detectProject();
113361
113412
  spinner.stop();
113362
113413
  console.log();
113363
113414
  logger.info(`Install location: ${isGlobal ? source_default.cyan("~/.claude (global)") : source_default.yellow("./.claude (local)")}`);
113415
+ logger.info(`Templates source: ${source_default.cyan(getTemplatesDir())}`);
113364
113416
  logger.info(`Git repository: ${project.isGitRepo ? source_default.green("Yes") : source_default.gray("No")}`);
113365
113417
  logger.info(`.NET project: ${project.hasDotNet ? source_default.green("Yes") : source_default.gray("No")}`);
113366
113418
  logger.info(`EF Core: ${project.hasEfCore ? source_default.green("Yes") : source_default.gray("No")}`);