@curdx/flow 3.5.0 → 4.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.
- package/CHANGELOG.md +13 -0
- package/README.md +4 -2
- package/dist/index.mjs +24 -11
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `@curdx/flow` are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/) and the project follows [Semantic Versioning](https://semver.org/).
|
|
4
4
|
|
|
5
|
+
## 4.0.0 — 2026-04-27
|
|
6
|
+
|
|
7
|
+
### Breaking
|
|
8
|
+
|
|
9
|
+
- **Plugin renamed `ralph-specum` → `curdx-flow`.** The bundled spec-driven workflow plugin now lives under the `curdx-flow` brand, slash namespace `/curdx-flow:*`, full slug `curdx-flow@curdx`. The marketplace identifier was simultaneously shortened from `curdx-flow` to `curdx` (the GitHub repo source `curdx/curdx-flow` is unchanged). All in-plugin slash references, env vars (`RALPH_SPECUM_*` → `CURDX_FLOW_*`), and labels were updated accordingly.
|
|
10
|
+
- **Auto-migration:** the installer now detects legacy `ralph-specum@curdx-flow` and `ralph-specum@smart-ralph` installs and uninstalls them automatically before installing the new slug, so users on v3.4 / v3.5 transparently transition. Your `specs/` directory and any in-progress spec state files are not touched — the rename is purely a plugin-identity change.
|
|
11
|
+
- **Manual fallback:** if you'd rather run the migration yourself, execute `claude plugin uninstall ralph-specum@curdx-flow` (or `@smart-ralph`) before re-running `npx @curdx/flow install`. The old marketplace `curdx-flow` may remain registered alongside the new `curdx` marketplace; this is harmless and you can `claude plugin marketplace remove curdx-flow` if you want to clean up.
|
|
12
|
+
|
|
13
|
+
### Notes
|
|
14
|
+
|
|
15
|
+
- The plugin's authorship and license lineage (smart-ralph by tzachbon → ralph-specum fork → curdx-flow) is recorded in `plugins/curdx-flow/NOTICE.md`. MIT License preserved.
|
|
16
|
+
- `.claude-plugin/marketplace.json` now declares one plugin: `curdx-flow` v4.9.1 sourced from `./plugins/curdx-flow`.
|
|
17
|
+
|
|
5
18
|
## 3.5.0 — 2026-04-27
|
|
6
19
|
|
|
7
20
|
### Changed
|
package/README.md
CHANGED
|
@@ -31,11 +31,13 @@ npx @curdx/flow --lang en # override language
|
|
|
31
31
|
| `claude-mem` | plugin | `thedotmack/claude-mem` |
|
|
32
32
|
| `chrome-devtools-mcp` | plugin | `ChromeDevTools/chrome-devtools-mcp` |
|
|
33
33
|
| `frontend-design` | plugin | `claude-plugins-official` (built-in) |
|
|
34
|
-
| `
|
|
34
|
+
| `curdx-flow` | plugin | bundled in this repo (always installed) — spec-driven dev with autonomous task execution (originally [tzachbon/smart-ralph](https://github.com/tzachbon/smart-ralph), MIT, intermediate fork: ralph-specum) |
|
|
35
35
|
| `sequential-thinking` | mcp | `@modelcontextprotocol/server-sequential-thinking` |
|
|
36
36
|
| `context7` | mcp | HTTP — `https://mcp.context7.com/mcp` (optional API key) |
|
|
37
37
|
|
|
38
|
-
>
|
|
38
|
+
> Migration notes:
|
|
39
|
+
> - If you installed the upstream `ralph-specum@smart-ralph` build, run `claude plugin uninstall ralph-specum@smart-ralph` before upgrading.
|
|
40
|
+
> - If you installed `ralph-specum@curdx-flow` (curdx-flow v3.4.0 / v3.5.0), run `claude plugin uninstall ralph-specum@curdx-flow` and re-run `npx @curdx/flow install`. The plugin is now `curdx-flow@curdx` with slash namespace `/curdx-flow:*`.
|
|
39
41
|
|
|
40
42
|
## What it writes to your filesystem
|
|
41
43
|
|
package/dist/index.mjs
CHANGED
|
@@ -520,18 +520,27 @@ var frontendDesign = {
|
|
|
520
520
|
};
|
|
521
521
|
var frontend_design_default = frontendDesign;
|
|
522
522
|
|
|
523
|
-
// src/registry/plugins/
|
|
524
|
-
var PLUGIN_ID5 = "
|
|
525
|
-
var PLUGIN_NAME3 = "
|
|
526
|
-
var MARKETPLACE_NAME4 = "curdx
|
|
523
|
+
// src/registry/plugins/curdx-flow.ts
|
|
524
|
+
var PLUGIN_ID5 = "curdx-flow@curdx";
|
|
525
|
+
var PLUGIN_NAME3 = "curdx-flow";
|
|
526
|
+
var MARKETPLACE_NAME4 = "curdx";
|
|
527
527
|
var MARKETPLACE_SOURCE4 = "curdx/curdx-flow";
|
|
528
|
-
var
|
|
529
|
-
|
|
530
|
-
|
|
528
|
+
var LEGACY_PLUGIN_IDS = ["ralph-specum@curdx-flow", "ralph-specum@smart-ralph"];
|
|
529
|
+
async function uninstallLegacyIfPresent(ctx) {
|
|
530
|
+
for (const legacyId of LEGACY_PLUGIN_IDS) {
|
|
531
|
+
if (await isPluginInstalled(legacyId)) {
|
|
532
|
+
ctx.log.message(`Removing legacy plugin ${legacyId} (renamed to ${PLUGIN_ID5})\u2026`);
|
|
533
|
+
await uninstallPluginById(legacyId, ctx);
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
var curdxFlow = {
|
|
538
|
+
id: "curdx-flow",
|
|
539
|
+
name: "curdx-flow",
|
|
531
540
|
description: "curdx-flow (originally tzachbon/smart-ralph) \u2014 spec-driven dev with autonomous task execution",
|
|
532
541
|
type: "plugin",
|
|
533
542
|
required: true,
|
|
534
|
-
slashNamespace: "/
|
|
543
|
+
slashNamespace: "/curdx-flow:*",
|
|
535
544
|
whenToUse: "for spec-driven multi-task work \u2014 research \u2192 requirements \u2192 design \u2192 tasks \u2192 autonomous execution per task. Use when starting a feature that benefits from upfront spec; skip for one-shot fixes or simple edits.",
|
|
536
545
|
marketplaces: () => [MARKETPLACE_NAME4],
|
|
537
546
|
isInstalled: () => isPluginInstalled(PLUGIN_ID5),
|
|
@@ -542,13 +551,17 @@ var ralphSpecum = {
|
|
|
542
551
|
},
|
|
543
552
|
latestVersion: () => getMarketplacePluginVersion(MARKETPLACE_NAME4, PLUGIN_NAME3),
|
|
544
553
|
install: async (ctx) => {
|
|
554
|
+
await uninstallLegacyIfPresent(ctx);
|
|
545
555
|
await ensureMarketplace(MARKETPLACE_NAME4, MARKETPLACE_SOURCE4, ctx);
|
|
546
556
|
await installPluginById(PLUGIN_ID5, ctx);
|
|
547
557
|
},
|
|
548
558
|
uninstall: (ctx) => uninstallPluginById(PLUGIN_ID5, ctx),
|
|
549
|
-
update: (ctx) =>
|
|
559
|
+
update: async (ctx) => {
|
|
560
|
+
await uninstallLegacyIfPresent(ctx);
|
|
561
|
+
await updatePluginById(PLUGIN_ID5, ctx);
|
|
562
|
+
}
|
|
550
563
|
};
|
|
551
|
-
var
|
|
564
|
+
var curdx_flow_default = curdxFlow;
|
|
552
565
|
|
|
553
566
|
// src/registry/mcps/sequential-thinking.ts
|
|
554
567
|
var MCP_NAME = "sequential-thinking";
|
|
@@ -647,7 +660,7 @@ var PKGS = [
|
|
|
647
660
|
claude_mem_default,
|
|
648
661
|
chrome_devtools_mcp_default,
|
|
649
662
|
frontend_design_default,
|
|
650
|
-
|
|
663
|
+
curdx_flow_default,
|
|
651
664
|
sequential_thinking_default,
|
|
652
665
|
context7_default
|
|
653
666
|
];
|