@wemuda/launchrail 1.7.0 → 1.9.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 (70) hide show
  1. package/README.md +36 -20
  2. package/assets/agents-docs/domain.md +59 -0
  3. package/assets/agents-docs/issue-tracker-github.md +51 -0
  4. package/assets/agents-docs/issue-tracker-gitlab.md +52 -0
  5. package/assets/agents-docs/issue-tracker-linear.md +52 -0
  6. package/assets/agents-docs/issue-tracker-local.md +45 -0
  7. package/assets/ralph.permission-guard.py +90 -0
  8. package/assets/ralph.workflow.js +129 -30
  9. package/assets/skills/NOTICE.md +41 -0
  10. package/assets/skills/launchrail/launch/SKILL.md +67 -0
  11. package/assets/skills/launchrail/launch/workflow.md +77 -0
  12. package/assets/skills/launchrail/launch-browser-smoke/SKILL.md +49 -0
  13. package/assets/skills/launchrail/launch-code-review/SKILL.md +89 -0
  14. package/assets/skills/launchrail/launch-design-validation/SKILL.md +44 -0
  15. package/assets/skills/launchrail/launch-discovery/SKILL.md +33 -0
  16. package/assets/skills/launchrail/launch-grill/CONTEXT-FORMAT.md +62 -0
  17. package/assets/skills/launchrail/launch-grill/SKILL.md +48 -0
  18. package/assets/skills/launchrail/launch-grill/domain-modeling.md +45 -0
  19. package/assets/skills/launchrail/launch-implement/SKILL.md +49 -0
  20. package/assets/skills/launchrail/launch-project-alignment/SKILL.md +48 -0
  21. package/assets/skills/launchrail/launch-ralph/SKILL.md +115 -0
  22. package/assets/skills/launchrail/launch-ralph-implement/SKILL.md +17 -0
  23. package/assets/skills/launchrail/launch-research/SKILL.md +16 -0
  24. package/assets/skills/launchrail/launch-resolving-merge-conflicts/SKILL.md +15 -0
  25. package/assets/skills/launchrail/launch-spec/SKILL.md +77 -0
  26. package/assets/skills/launchrail/launch-tickets/SKILL.md +107 -0
  27. package/assets/skills/launchrail/launch-vision-creation/SKILL.md +60 -0
  28. package/assets/skills/launchrail/launch-wayfinder/SKILL.md +130 -0
  29. package/dist/commands/add.js +21 -4
  30. package/dist/commands/add.js.map +1 -1
  31. package/dist/commands/doctor.js +42 -32
  32. package/dist/commands/doctor.js.map +1 -1
  33. package/dist/commands/init.d.ts +3 -7
  34. package/dist/commands/init.js +62 -85
  35. package/dist/commands/init.js.map +1 -1
  36. package/dist/commands/sync.js +11 -0
  37. package/dist/commands/sync.js.map +1 -1
  38. package/dist/index.js +0 -5
  39. package/dist/index.js.map +1 -1
  40. package/dist/lib/agentsDocs.d.ts +4 -0
  41. package/dist/lib/agentsDocs.js +32 -0
  42. package/dist/lib/agentsDocs.js.map +1 -0
  43. package/dist/lib/claudeSettings.d.ts +74 -11
  44. package/dist/lib/claudeSettings.js +185 -17
  45. package/dist/lib/claudeSettings.js.map +1 -1
  46. package/dist/lib/detect.d.ts +0 -2
  47. package/dist/lib/detect.js +0 -1
  48. package/dist/lib/detect.js.map +1 -1
  49. package/dist/lib/manifest.d.ts +14 -1
  50. package/dist/lib/manifest.js +18 -1
  51. package/dist/lib/manifest.js.map +1 -1
  52. package/dist/lib/migrations.js +202 -1
  53. package/dist/lib/migrations.js.map +1 -1
  54. package/dist/lib/project.js +9 -1
  55. package/dist/lib/project.js.map +1 -1
  56. package/dist/lib/ralph.d.ts +16 -5
  57. package/dist/lib/ralph.js +32 -9
  58. package/dist/lib/ralph.js.map +1 -1
  59. package/dist/lib/seeds.js +4 -1
  60. package/dist/lib/seeds.js.map +1 -1
  61. package/dist/lib/skills.d.ts +12 -0
  62. package/dist/lib/skills.js +57 -0
  63. package/dist/lib/skills.js.map +1 -0
  64. package/dist/lib/upstream.d.ts +6 -6
  65. package/dist/lib/upstream.js +1 -1
  66. package/dist/lib/upstream.js.map +1 -1
  67. package/package.json +1 -1
  68. package/dist/lib/claudeCli.d.ts +0 -51
  69. package/dist/lib/claudeCli.js +0 -71
  70. package/dist/lib/claudeCli.js.map +0 -1
@@ -1,71 +0,0 @@
1
- import { spawnSync } from "node:child_process";
2
- import { PLUGIN_DECLARATIONS } from "./claudeSettings.js";
3
- /** Every Claude Code plugin the Launchrail workflow depends on — one roster with the committed declaration. */
4
- export const WORKFLOW_PLUGINS = PLUGIN_DECLARATIONS.map((d) => ({
5
- marketplace: d.repo,
6
- id: d.pluginKey,
7
- label: d.label,
8
- }));
9
- const RUN_OPTS = { encoding: "utf8", timeout: 180_000 };
10
- function runClaude(cwd, args) {
11
- const res = spawnSync("claude", args, { ...RUN_OPTS, cwd });
12
- return {
13
- ok: res.status === 0,
14
- notFound: res.error !== undefined,
15
- stdout: (res.stdout ?? "").trim(),
16
- stderr: (res.stderr ?? "").trim(),
17
- };
18
- }
19
- /** The `claude` CLI version, or null when it is unavailable or opted out. */
20
- export function detectClaudeCli(cwd) {
21
- if (process.env.LAUNCHRAIL_SKIP_CLAUDE_CLI)
22
- return null;
23
- const res = runClaude(cwd, ["--version"]);
24
- if (!res.ok || res.notFound)
25
- return null;
26
- return res.stdout || "unknown version";
27
- }
28
- /**
29
- * Register one plugin's marketplace and install it at user scope — or, when
30
- * it is already installed, update it to the marketplace's latest version, so
31
- * re-running init always leaves the roster current. Every underlying command
32
- * is idempotent (exit 0 on "already on disk" / "already installed" / "already
33
- * at the latest version"). Assumes the CLI is present — callers detect first.
34
- */
35
- export function installPlugin(cwd, plugin) {
36
- const add = runClaude(cwd, ["plugin", "marketplace", "add", plugin.marketplace]);
37
- if (!add.ok) {
38
- return { state: "failed", step: "marketplace-add", output: add.stderr || add.stdout };
39
- }
40
- const install = runClaude(cwd, ["plugin", "install", plugin.id]);
41
- if (!install.ok) {
42
- return { state: "failed", step: "plugin-install", output: install.stderr || install.stdout };
43
- }
44
- if (!install.stdout.includes("already installed")) {
45
- return { state: "installed", detail: "installed" };
46
- }
47
- const update = runClaude(cwd, ["plugin", "update", plugin.id]);
48
- if (!update.ok) {
49
- return { state: "failed", step: "plugin-update", output: update.stderr || update.stdout };
50
- }
51
- const moved = update.stdout.match(/updated from (\S+) to (\S+)/);
52
- return moved
53
- ? { state: "installed", detail: "updated", versions: `${moved[1]} → ${moved[2]}` }
54
- : { state: "installed", detail: "up-to-date" };
55
- }
56
- /** The ids of installed plugins, via `claude plugin list --json`. */
57
- export function listInstalledPluginIds(cwd) {
58
- if (detectClaudeCli(cwd) === null)
59
- return { state: "no-cli" };
60
- const res = runClaude(cwd, ["plugin", "list", "--json"]);
61
- if (!res.ok)
62
- return { state: "unreadable" };
63
- try {
64
- const plugins = JSON.parse(res.stdout);
65
- return { state: "ok", ids: plugins.map((p) => p.id).filter((id) => typeof id === "string") };
66
- }
67
- catch {
68
- return { state: "unreadable" };
69
- }
70
- }
71
- //# sourceMappingURL=claudeCli.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claudeCli.js","sourceRoot":"","sources":["../../src/lib/claudeCli.ts"],"names":[],"mappings":"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"}