hub-launch 1.29.0 → 1.31.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 +21 -0
- package/README.md +53 -1
- package/dist/commands/errorWatcher.d.ts +2 -0
- package/dist/commands/errorWatcher.d.ts.map +1 -1
- package/dist/commands/errorWatcher.js +13 -0
- package/dist/commands/errorWatcher.js.map +1 -1
- package/dist/commands/init.d.ts +12 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +55 -4
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/launch.d.ts +36 -0
- package/dist/commands/launch.d.ts.map +1 -1
- package/dist/commands/launch.js +267 -6
- package/dist/commands/launch.js.map +1 -1
- package/dist/commands/login.d.ts +14 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +26 -4
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/schedule.d.ts +15 -0
- package/dist/commands/schedule.d.ts.map +1 -1
- package/dist/commands/schedule.js +81 -2
- package/dist/commands/schedule.js.map +1 -1
- package/dist/commands/script.d.ts +1 -1
- package/dist/commands/script.d.ts.map +1 -1
- package/dist/commands/script.js +3 -0
- package/dist/commands/script.js.map +1 -1
- package/dist/commands/session-hook.d.ts +9 -0
- package/dist/commands/session-hook.d.ts.map +1 -1
- package/dist/commands/session-hook.js +60 -15
- package/dist/commands/session-hook.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/scripts/backlog-add.d.ts +2 -0
- package/dist/scripts/backlog-add.d.ts.map +1 -0
- package/dist/scripts/backlog-add.js +145 -0
- package/dist/scripts/backlog-add.js.map +1 -0
- package/dist/scripts/backlog-init.d.ts +2 -0
- package/dist/scripts/backlog-init.d.ts.map +1 -0
- package/dist/scripts/backlog-init.js +84 -0
- package/dist/scripts/backlog-init.js.map +1 -0
- package/dist/scripts/backlog-resync.d.ts +2 -0
- package/dist/scripts/backlog-resync.d.ts.map +1 -0
- package/dist/scripts/backlog-resync.js +156 -0
- package/dist/scripts/backlog-resync.js.map +1 -0
- package/dist/scripts/launch-run.d.ts +1 -0
- package/dist/scripts/launch-run.d.ts.map +1 -1
- package/dist/scripts/launch-run.js +47 -3
- package/dist/scripts/launch-run.js.map +1 -1
- package/dist/scripts/lib/backlog-sync.d.ts +27 -0
- package/dist/scripts/lib/backlog-sync.d.ts.map +1 -0
- package/dist/scripts/lib/backlog-sync.js +48 -0
- package/dist/scripts/lib/backlog-sync.js.map +1 -0
- package/dist/scripts/lib/read-config.d.ts +16 -0
- package/dist/scripts/lib/read-config.d.ts.map +1 -1
- package/dist/scripts/lib/read-config.js +34 -0
- package/dist/scripts/lib/read-config.js.map +1 -1
- package/dist/services/api/HulaApiClient.d.ts +39 -0
- package/dist/services/api/HulaApiClient.d.ts.map +1 -1
- package/dist/services/api/HulaApiClient.js +15 -0
- package/dist/services/api/HulaApiClient.js.map +1 -1
- package/dist/services/github/IssueService.d.ts.map +1 -1
- package/dist/services/github/IssueService.js +3 -0
- package/dist/services/github/IssueService.js.map +1 -1
- package/dist/services/plan/GitHubSourcePlanService.d.ts +67 -0
- package/dist/services/plan/GitHubSourcePlanService.d.ts.map +1 -0
- package/dist/services/plan/GitHubSourcePlanService.js +148 -0
- package/dist/services/plan/GitHubSourcePlanService.js.map +1 -0
- package/dist/services/plan/PlanBranchService.d.ts +5 -1
- package/dist/services/plan/PlanBranchService.d.ts.map +1 -1
- package/dist/services/plan/PlanBranchService.js +21 -3
- package/dist/services/plan/PlanBranchService.js.map +1 -1
- package/dist/templates/proceed-instructions.md +2 -1
- package/dist/templates/skills/hula-approve/SKILL.md +31 -0
- package/dist/templates/skills/hula-fix/SKILL.md +10 -0
- package/dist/templates/skills/hula-launch/SKILL.md +40 -1
- package/dist/templates/skills/hula-plan/SKILL.md +39 -4
- package/dist/types/config.schema.d.ts +24 -0
- package/dist/types/config.schema.d.ts.map +1 -1
- package/dist/types/config.schema.js +11 -0
- package/dist/types/config.schema.js.map +1 -1
- package/dist/types/issue.schema.d.ts +6 -0
- package/dist/types/issue.schema.d.ts.map +1 -1
- package/dist/types/issue.schema.js +8 -0
- package/dist/types/issue.schema.js.map +1 -1
- package/dist/types/pr.schema.d.ts +38 -0
- package/dist/types/pr.schema.d.ts.map +1 -1
- package/dist/types/pr.schema.js +7 -0
- package/dist/types/pr.schema.js.map +1 -1
- package/dist/utils/client-session.d.ts +16 -0
- package/dist/utils/client-session.d.ts.map +1 -1
- package/dist/utils/client-session.js +29 -0
- package/dist/utils/client-session.js.map +1 -1
- package/dist/utils/sandbox-profile.d.ts +44 -0
- package/dist/utils/sandbox-profile.d.ts.map +1 -0
- package/dist/utils/sandbox-profile.js +78 -0
- package/dist/utils/sandbox-profile.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HulaApiClient.d.ts","sourceRoot":"","sources":["../../../src/services/api/HulaApiClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HulaApiClient.d.ts","sourceRoot":"","sources":["../../../src/services/api/HulaApiClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,6 +63,21 @@ export class HulaApiClient {
|
|
|
63
63
|
throw err;
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Push one chat-scoped backlog item to the server, which resolves the target
|
|
68
|
+
* `Plan` by natural key (see {@link PushBacklogItemRequest}) and attaches the
|
|
69
|
+
* item to it.
|
|
70
|
+
*
|
|
71
|
+
* Deliberately does NOT call `maybeRethrowAsIncompatibleServer`: a 404 here is
|
|
72
|
+
* an expected, routine outcome (the `Plan` isn't tracked yet, or the server
|
|
73
|
+
* predates this brand-new endpoint) — not a version-incompatibility signal. It
|
|
74
|
+
* surfaces as `NotFoundError` via the shared `handleError` interceptor, and the
|
|
75
|
+
* calling script treats that as "not yet trackable" and retries later.
|
|
76
|
+
*/
|
|
77
|
+
async pushBacklogItem(data) {
|
|
78
|
+
const response = await this.client.post('/api/v1/plans/backlog', data);
|
|
79
|
+
return response.data;
|
|
80
|
+
}
|
|
66
81
|
/**
|
|
67
82
|
* Get detailed status for a specific plan
|
|
68
83
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HulaApiClient.js","sourceRoot":"","sources":["../../../src/services/api/HulaApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"HulaApiClient.js","sourceRoot":"","sources":["../../../src/services/api/HulaApiClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IssueService.d.ts","sourceRoot":"","sources":["../../../src/services/github/IssueService.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,KAAK,EACV,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAGlB,MAAM,sBAAsB,CAAC;AAE9B;;;GAGG;AACH,qBAAa,YAAY;IACvB;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAK9E;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;IA0BvD;;;OAGG;IACG,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAqB7E;;OAEG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBlE;;OAEG;IACG,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9E;;OAEG;IACG,IAAI,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAwBxD;;OAEG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAalE;;OAEG;IACG,WAAW,CACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAY5F;;OAEG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBrE;;OAEG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBpE;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAuFxD;;OAEG;IACH,OAAO,CAAC,wBAAwB;
|
|
1
|
+
{"version":3,"file":"IssueService.d.ts","sourceRoot":"","sources":["../../../src/services/github/IssueService.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,KAAK,EACV,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAGlB,MAAM,sBAAsB,CAAC;AAE9B;;;GAGG;AACH,qBAAa,YAAY;IACvB;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAK9E;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;IA0BvD;;;OAGG;IACG,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAqB7E;;OAEG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBlE;;OAEG;IACG,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9E;;OAEG;IACG,IAAI,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAwBxD;;OAEG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAalE;;OAEG;IACG,WAAW,CACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAY5F;;OAEG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBrE;;OAEG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBpE;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAuFxD;;OAEG;IACH,OAAO,CAAC,wBAAwB;CAejC"}
|
|
@@ -225,6 +225,9 @@ export class IssueService {
|
|
|
225
225
|
createdAt: githubIssue.created_at,
|
|
226
226
|
updatedAt: githubIssue.updated_at,
|
|
227
227
|
assignees: githubIssue.assignees.map((a) => a.login),
|
|
228
|
+
...(githubIssue.pull_request !== undefined
|
|
229
|
+
? { isPullRequest: true }
|
|
230
|
+
: {}),
|
|
228
231
|
};
|
|
229
232
|
}
|
|
230
233
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IssueService.js","sourceRoot":"","sources":["../../../src/services/github/IssueService.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"IssueService.js","sourceRoot":"","sources":["../../../src/services/github/IssueService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { Issue } from '../../types/index.js';
|
|
2
|
+
import type { PullRequest } from '../../types/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* GitHub-source plan generation for `hula launch --issue` / `--pr`.
|
|
5
|
+
*
|
|
6
|
+
* The CLI can start a launch from an existing GitHub issue or pull request
|
|
7
|
+
* instead of a local plan file. This module owns everything GitHub-specific:
|
|
8
|
+
* parsing the `--issue` / `--pr` reference, resolving and validating the issue
|
|
9
|
+
* or PR through the existing services, turning its text into a generated plan
|
|
10
|
+
* markdown, and writing that plan to the local plans directory (from where the
|
|
11
|
+
* normal launch flow publishes it to the feature branch and deletes it after a
|
|
12
|
+
* successful POST).
|
|
13
|
+
*/
|
|
14
|
+
/** A parsed `--issue` / `--pr` reference. owner/repo are present only for URLs. */
|
|
15
|
+
export interface GitHubRef {
|
|
16
|
+
number: number;
|
|
17
|
+
owner?: string;
|
|
18
|
+
repo?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Parse an `--issue` / `--pr` value: a number (`42`), a `#`-prefixed number
|
|
22
|
+
* (`#42`), or a full GitHub URL (`https://github.com/<owner>/<repo>/issues/<n>`
|
|
23
|
+
* for `issue`, `/pull/<n>` for `pr`), with an optional trailing `/`, `#...`, or
|
|
24
|
+
* `?...`.
|
|
25
|
+
*
|
|
26
|
+
* Throws a clear, flag-specific error on anything else (including an issue URL
|
|
27
|
+
* passed to `--pr` or vice versa — the path segment must match `kind`).
|
|
28
|
+
*/
|
|
29
|
+
export declare function parseGitHubRef(input: string, kind: 'issue' | 'pr'): GitHubRef;
|
|
30
|
+
/**
|
|
31
|
+
* Find the first issue number linked from a PR body via a GitHub closing
|
|
32
|
+
* keyword (`Closes #5`, `fixes: #5`, `Resolved #5`, …). Returns `null` when
|
|
33
|
+
* there is no such reference.
|
|
34
|
+
*/
|
|
35
|
+
export declare function findLinkedIssueNumber(body: string | null): number | null;
|
|
36
|
+
/**
|
|
37
|
+
* Resolve an explicit `--issue <n>` into a validated open issue (not a PR).
|
|
38
|
+
*/
|
|
39
|
+
export declare function resolveIssueSource(n: number, repo: {
|
|
40
|
+
owner?: string;
|
|
41
|
+
name?: string;
|
|
42
|
+
}): Promise<Issue>;
|
|
43
|
+
/**
|
|
44
|
+
* Resolve `--pr <n>` into a validated open, same-repo pull request.
|
|
45
|
+
*/
|
|
46
|
+
export declare function resolvePrSource(n: number): Promise<PullRequest>;
|
|
47
|
+
/**
|
|
48
|
+
* Build the generated plan markdown from a resolved issue and/or PR. Sections
|
|
49
|
+
* are omitted when the source is absent; empty descriptions become a
|
|
50
|
+
* placeholder so the plan never has a blank body.
|
|
51
|
+
*/
|
|
52
|
+
export declare function buildPlanMarkdown(input: {
|
|
53
|
+
issue?: Issue;
|
|
54
|
+
pr?: PullRequest;
|
|
55
|
+
repoFullName: string;
|
|
56
|
+
}): string;
|
|
57
|
+
/**
|
|
58
|
+
* Write a generated plan to `<planDir>/<YYYY-MM-DD-HH:MM>-<slug>.md`, creating
|
|
59
|
+
* the directory if needed, and return the path relative to the repo root
|
|
60
|
+
* (`planDir`'s parent chain). A relaunch in the same minute overwrites the file.
|
|
61
|
+
*
|
|
62
|
+
* `planDir` is the repo-relative plans directory (`config.planPath`). The
|
|
63
|
+
* returned path is repo-relative so the normal launch flow (publish + delete)
|
|
64
|
+
* treats it exactly like a hand-written plan.
|
|
65
|
+
*/
|
|
66
|
+
export declare function writeGeneratedPlan(planDir: string, slug: string, markdown: string, repoRoot?: string): string;
|
|
67
|
+
//# sourceMappingURL=GitHubSourcePlanService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitHubSourcePlanService.d.ts","sourceRoot":"","sources":["../../../src/services/plan/GitHubSourcePlanService.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;;;;;;;GAUG;AAEH,mFAAmF;AACnF,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,OAAO,GAAG,IAAI,GACnB,SAAS,CAgCX;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAMxE;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,CAAC,EAAE,MAAM,EACT,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACtC,OAAO,CAAC,KAAK,CAAC,CAahB;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAuBrE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,CAsCT;AAcD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,MAAsB,GAC/B,MAAM,CAaR"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, writeFileSync } from 'fs';
|
|
2
|
+
import { isAbsolute, join, relative } from 'path';
|
|
3
|
+
import { IssueService } from '../github/IssueService.js';
|
|
4
|
+
import { PRService } from '../github/PRService.js';
|
|
5
|
+
/**
|
|
6
|
+
* Parse an `--issue` / `--pr` value: a number (`42`), a `#`-prefixed number
|
|
7
|
+
* (`#42`), or a full GitHub URL (`https://github.com/<owner>/<repo>/issues/<n>`
|
|
8
|
+
* for `issue`, `/pull/<n>` for `pr`), with an optional trailing `/`, `#...`, or
|
|
9
|
+
* `?...`.
|
|
10
|
+
*
|
|
11
|
+
* Throws a clear, flag-specific error on anything else (including an issue URL
|
|
12
|
+
* passed to `--pr` or vice versa — the path segment must match `kind`).
|
|
13
|
+
*/
|
|
14
|
+
export function parseGitHubRef(input, kind) {
|
|
15
|
+
const trimmed = input.trim();
|
|
16
|
+
const segment = kind === 'issue' ? 'issues' : 'pull';
|
|
17
|
+
const badValue = () => {
|
|
18
|
+
throw new Error(`Invalid --${kind} value "${input}". Use a number, #number, or https://github.com/<owner>/<repo>/${segment}/<n>`);
|
|
19
|
+
};
|
|
20
|
+
// Plain number or #number.
|
|
21
|
+
const numMatch = /^#?(\d+)$/.exec(trimmed);
|
|
22
|
+
if (numMatch) {
|
|
23
|
+
const number = Number(numMatch[1]);
|
|
24
|
+
if (!Number.isSafeInteger(number) || number <= 0)
|
|
25
|
+
badValue();
|
|
26
|
+
return { number };
|
|
27
|
+
}
|
|
28
|
+
// GitHub URL. The path segment (issues|pull) must match `kind` so an issue
|
|
29
|
+
// URL handed to --pr (or vice versa) is rejected rather than silently
|
|
30
|
+
// treated as the other kind.
|
|
31
|
+
const urlMatch = /^https?:\/\/github\.com\/([^/]+)\/([^/]+)\/(issues|pull)\/(\d+)(?:[/#?].*)?$/i.exec(trimmed);
|
|
32
|
+
if (urlMatch && urlMatch[3]?.toLowerCase() === segment) {
|
|
33
|
+
const number = Number(urlMatch[4]);
|
|
34
|
+
if (!Number.isSafeInteger(number) || number <= 0)
|
|
35
|
+
badValue();
|
|
36
|
+
return { number, owner: urlMatch[1], repo: urlMatch[2] };
|
|
37
|
+
}
|
|
38
|
+
return badValue();
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Find the first issue number linked from a PR body via a GitHub closing
|
|
42
|
+
* keyword (`Closes #5`, `fixes: #5`, `Resolved #5`, …). Returns `null` when
|
|
43
|
+
* there is no such reference.
|
|
44
|
+
*/
|
|
45
|
+
export function findLinkedIssueNumber(body) {
|
|
46
|
+
if (!body)
|
|
47
|
+
return null;
|
|
48
|
+
const match = /\b(?:close[sd]?|fix(?:e[sd])?|resolve[sd]?)\s*:?\s+#(\d+)\b/i.exec(body);
|
|
49
|
+
return match ? Number(match[1]) : null;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Resolve an explicit `--issue <n>` into a validated open issue (not a PR).
|
|
53
|
+
*/
|
|
54
|
+
export async function resolveIssueSource(n, repo) {
|
|
55
|
+
const issue = await new IssueService().get(n, repo.owner, repo.name);
|
|
56
|
+
if (issue.isPullRequest) {
|
|
57
|
+
throw new Error(`#${n} is a pull request, not an issue. Use --pr ${n} instead.`);
|
|
58
|
+
}
|
|
59
|
+
if (issue.state !== 'open') {
|
|
60
|
+
throw new Error(`Issue #${n} is closed. Reopen it on GitHub before launching.`);
|
|
61
|
+
}
|
|
62
|
+
return issue;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Resolve `--pr <n>` into a validated open, same-repo pull request.
|
|
66
|
+
*/
|
|
67
|
+
export async function resolvePrSource(n) {
|
|
68
|
+
const pr = await new PRService().get(n);
|
|
69
|
+
if (pr.merged_at) {
|
|
70
|
+
throw new Error(`PR #${n} is already merged. Nothing to continue.`);
|
|
71
|
+
}
|
|
72
|
+
if (pr.state !== 'open') {
|
|
73
|
+
throw new Error(`PR #${n} is closed. Reopen it on GitHub before launching.`);
|
|
74
|
+
}
|
|
75
|
+
const headFullName = pr.head.repo?.full_name ?? null;
|
|
76
|
+
const baseFullName = pr.base.repo?.full_name ?? null;
|
|
77
|
+
const isFork = headFullName === null ||
|
|
78
|
+
(baseFullName !== null &&
|
|
79
|
+
headFullName.toLowerCase() !== baseFullName.toLowerCase());
|
|
80
|
+
if (isFork) {
|
|
81
|
+
const source = headFullName ?? 'a deleted fork';
|
|
82
|
+
throw new Error(`PR #${n} comes from a fork (${source}). HubLaunch can only continue pull requests whose branch is in this repository.`);
|
|
83
|
+
}
|
|
84
|
+
return pr;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Build the generated plan markdown from a resolved issue and/or PR. Sections
|
|
88
|
+
* are omitted when the source is absent; empty descriptions become a
|
|
89
|
+
* placeholder so the plan never has a blank body.
|
|
90
|
+
*/
|
|
91
|
+
export function buildPlanMarkdown(input) {
|
|
92
|
+
const { issue, pr, repoFullName } = input;
|
|
93
|
+
const placeholder = '_No description provided._';
|
|
94
|
+
const title = pr ? pr.title : (issue?.title ?? 'Untitled');
|
|
95
|
+
const sourceLines = [];
|
|
96
|
+
if (pr) {
|
|
97
|
+
sourceLines.push(`- Pull request: #${pr.number} — ${pr.html_url} (branch \`${pr.head.ref}\` → \`${pr.base.ref}\`)`);
|
|
98
|
+
}
|
|
99
|
+
if (issue) {
|
|
100
|
+
sourceLines.push(`- Issue: #${issue.number} — https://github.com/${repoFullName}/issues/${issue.number}`);
|
|
101
|
+
}
|
|
102
|
+
const task = pr
|
|
103
|
+
? `Continue the existing pull request #${pr.number}. It already contains work: first read its current changes with \`git diff origin/${pr.base.ref}...HEAD\` and understand them, then finish what the pull request description (and the linked issue, if any) asks for. Do not revert or rewrite existing commits; add new commits on top. Add or update tests for anything you change.`
|
|
104
|
+
: `Implement what GitHub issue #${issue?.number} asks for. The issue text is below. Make the smallest complete change that resolves it, add or update tests, and keep existing behaviour unchanged elsewhere.`;
|
|
105
|
+
const sections = [];
|
|
106
|
+
sections.push(`# ${title}`);
|
|
107
|
+
sections.push(`## Source\n${sourceLines.join('\n')}`);
|
|
108
|
+
sections.push(`## Task\n${task}`);
|
|
109
|
+
if (pr) {
|
|
110
|
+
sections.push(`## Pull Request Description\n${pr.body?.trim() ? pr.body.trim() : placeholder}`);
|
|
111
|
+
}
|
|
112
|
+
if (issue) {
|
|
113
|
+
sections.push(`## Issue Description\n${issue.body?.trim() ? issue.body.trim() : placeholder}`);
|
|
114
|
+
}
|
|
115
|
+
return sections.join('\n\n') + '\n';
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Format the local date/time as `YYYY-MM-DD-HH:MM` (24-hour, local time) to
|
|
119
|
+
* match the existing plan-filename convention.
|
|
120
|
+
*/
|
|
121
|
+
function timestampSlug(now = new Date()) {
|
|
122
|
+
const pad = (n) => String(n).padStart(2, '0');
|
|
123
|
+
return (`${now.getFullYear()}-${pad(now.getMonth() + 1)}-${pad(now.getDate())}` +
|
|
124
|
+
`-${pad(now.getHours())}:${pad(now.getMinutes())}`);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Write a generated plan to `<planDir>/<YYYY-MM-DD-HH:MM>-<slug>.md`, creating
|
|
128
|
+
* the directory if needed, and return the path relative to the repo root
|
|
129
|
+
* (`planDir`'s parent chain). A relaunch in the same minute overwrites the file.
|
|
130
|
+
*
|
|
131
|
+
* `planDir` is the repo-relative plans directory (`config.planPath`). The
|
|
132
|
+
* returned path is repo-relative so the normal launch flow (publish + delete)
|
|
133
|
+
* treats it exactly like a hand-written plan.
|
|
134
|
+
*/
|
|
135
|
+
export function writeGeneratedPlan(planDir, slug, markdown, repoRoot = process.cwd()) {
|
|
136
|
+
const absDir = isAbsolute(planDir) ? planDir : join(repoRoot, planDir);
|
|
137
|
+
if (!existsSync(absDir)) {
|
|
138
|
+
mkdirSync(absDir, { recursive: true });
|
|
139
|
+
}
|
|
140
|
+
const fileName = `${timestampSlug()}-${slug}.md`;
|
|
141
|
+
const absPath = join(absDir, fileName);
|
|
142
|
+
writeFileSync(absPath, markdown, 'utf-8');
|
|
143
|
+
// Return a repo-relative path (matching the positional-planPath convention)
|
|
144
|
+
// so the publish + post-POST cleanup treat it like any other plan file.
|
|
145
|
+
const rel = relative(repoRoot, absPath);
|
|
146
|
+
return rel;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=GitHubSourcePlanService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitHubSourcePlanService.js","sourceRoot":"","sources":["../../../src/services/plan/GitHubSourcePlanService.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,5 +34,9 @@ export declare class PlanNotFoundError extends Error {
|
|
|
34
34
|
*
|
|
35
35
|
* @throws PlanNotFoundError when the plan content cannot be resolved anywhere.
|
|
36
36
|
*/
|
|
37
|
-
export declare function ensurePlanBranch(config: Config, planPath: string, issueName: string, repoRoot?: string
|
|
37
|
+
export declare function ensurePlanBranch(config: Config, planPath: string, issueName: string, repoRoot?: string, opts?: {
|
|
38
|
+
branch?: string;
|
|
39
|
+
baseBranch?: string;
|
|
40
|
+
requireExistingBranch?: boolean;
|
|
41
|
+
}): Promise<EnsurePlanBranchResult>;
|
|
38
42
|
//# sourceMappingURL=PlanBranchService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlanBranchService.d.ts","sourceRoot":"","sources":["../../../src/services/plan/PlanBranchService.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAMnD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,OAAO,EAAE,OAAO,CAAC;IACjB,gFAAgF;IAChF,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,QAAQ,EAAE,MAAM;CAI7B;AAmCD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"PlanBranchService.d.ts","sourceRoot":"","sources":["../../../src/services/plan/PlanBranchService.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAMnD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,OAAO,EAAE,OAAO,CAAC;IACjB,gFAAgF;IAChF,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,QAAQ,EAAE,MAAM;CAI7B;AAmCD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,EAQjB,IAAI,CAAC,EAAE;IACL,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,GACA,OAAO,CAAC,sBAAsB,CAAC,CAsEjC"}
|
|
@@ -54,16 +54,34 @@ async function resolvePlanContent(gitService, relativePath, planFsPath, branch,
|
|
|
54
54
|
*
|
|
55
55
|
* @throws PlanNotFoundError when the plan content cannot be resolved anywhere.
|
|
56
56
|
*/
|
|
57
|
-
export async function ensurePlanBranch(config, planPath, issueName, repoRoot
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
export async function ensurePlanBranch(config, planPath, issueName, repoRoot,
|
|
58
|
+
// Overrides for the launch-from-existing flow (FR 7):
|
|
59
|
+
// branch → publish to this exact branch (unsanitized, may
|
|
60
|
+
// contain `/`), e.g. a PR's head branch.
|
|
61
|
+
// baseBranch → cut the new branch from this ref instead of
|
|
62
|
+
// config.uploadBranch; verified to exist on origin.
|
|
63
|
+
// requireExistingBranch → the branch must already be on origin (a PR's
|
|
64
|
+
// head branch); never create it.
|
|
65
|
+
opts) {
|
|
66
|
+
const branch = opts?.branch ?? sanitizePlanName(issueName);
|
|
67
|
+
const baseBranch = opts?.baseBranch ?? config.uploadBranch ?? 'main';
|
|
60
68
|
const gitService = new GitService(repoRoot);
|
|
61
69
|
const planService = new PlanService(config.planPath);
|
|
62
70
|
const relativePath = planService.getRelativePath(planPath);
|
|
63
71
|
const planFsPath = isAbsolute(planPath) || !repoRoot ? planPath : join(repoRoot, planPath);
|
|
64
72
|
// One fetch up front so every origin/<ref> read below is current.
|
|
65
73
|
await gitService.fetch('origin');
|
|
74
|
+
// An explicit base branch (--base) must exist on origin before we try to
|
|
75
|
+
// cut a new branch from it.
|
|
76
|
+
if (opts?.baseBranch &&
|
|
77
|
+
!(await gitService.remoteBranchExists(opts.baseBranch))) {
|
|
78
|
+
throw new Error(`Base branch '${opts.baseBranch}' not found on origin`);
|
|
79
|
+
}
|
|
66
80
|
const branchOnOrigin = await gitService.remoteBranchExists(branch);
|
|
81
|
+
// A PR's head branch must already be on origin — never create it here.
|
|
82
|
+
if (opts?.requireExistingBranch && !branchOnOrigin) {
|
|
83
|
+
throw new Error(`Branch '${branch}' of the pull request was not found on origin`);
|
|
84
|
+
}
|
|
67
85
|
const content = await resolvePlanContent(gitService, relativePath, planFsPath, branch, branchOnOrigin, baseBranch);
|
|
68
86
|
if (content === null) {
|
|
69
87
|
throw new PlanNotFoundError(planPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlanBranchService.js","sourceRoot":"","sources":["../../../src/services/plan/PlanBranchService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAc/C;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,QAAgB;QAC1B,KAAK,CAAC,6CAA6C,QAAQ,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,kBAAkB,CAC/B,UAAsB,EACtB,YAAoB,EACpB,UAAkB,EAClB,MAAc,EACd,cAAuB,EACvB,UAAkB;IAElB,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,IACE,cAAc;QACd,CAAC,MAAM,UAAU,CAAC,eAAe,CAAC,UAAU,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,EACpE,CAAC;QACD,OAAO,UAAU,CAAC,QAAQ,CAAC,UAAU,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC;IAC/D,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,UAAU,UAAU,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC;QACvD,IAAI,MAAM,UAAU,CAAC,eAAe,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC;YACxD,OAAO,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAc,EACd,QAAgB,EAChB,SAAiB,EACjB,QAAiB;
|
|
1
|
+
{"version":3,"file":"PlanBranchService.js","sourceRoot":"","sources":["../../../src/services/plan/PlanBranchService.ts"],"names":[],"mappings":"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"}
|
|
@@ -386,6 +386,7 @@ Determine `<issueName>` before asking the question:
|
|
|
386
386
|
- If the slug is **longer than 3 words**, shorten it to the 2–3 most distinctive words (e.g. `auto-launch-offer-after-plan` → `auto-launch`). Otherwise keep it as-is.
|
|
387
387
|
- Always **kebab-case** (lowercase words joined by hyphens), never camelCase — these become git branch names.
|
|
388
388
|
- Example: `.hublaunch/plans/skills/2026-07-09-14:28-auto-launch-offer-after-plan.md` → slug `auto-launch-offer-after-plan` → `<issueName>` = `auto-launch`.
|
|
389
|
+
- **Exception — existing issue or PR:** if `/hula-plan` emitted a `<!-- hula-source: --issue <n> -->` or `<!-- hula-source: --pr <n> -->` comment for this plan, the default is `issue-<n>` or `pr-<n>` instead of the slug.
|
|
389
390
|
|
|
390
391
|
### 2. Ask the launch question
|
|
391
392
|
|
|
@@ -416,7 +417,7 @@ Then **STOP and wait** for the user's reply. Do not launch until they answer.
|
|
|
416
417
|
|
|
417
418
|
### 4. Execute the launch
|
|
418
419
|
|
|
419
|
-
On a clear affirmative, read `.agents/skills/hula-launch/SKILL.md` and execute its workflow with the arguments `<issueName> <planPath>` (plus any `--handoff`/`--test` flags from the reply). Pass the plan path explicitly — it is known in this session — rather than relying on chat-history extraction.
|
|
420
|
+
On a clear affirmative, read `.agents/skills/hula-launch/SKILL.md` and execute its workflow with the arguments `<issueName> <planPath>` (plus any `--handoff`/`--test` flags from the reply, and the `--issue <n>` / `--pr <n>` flag from this plan's `hula-source` comment, if any). Pass the plan path explicitly — it is known in this session — rather than relying on chat-history extraction.
|
|
420
421
|
|
|
421
422
|
Execute that workflow **inline in this session**: read the SKILL.md file and follow its steps directly. Do **not** invoke `hula-launch` (or any other hula skill) through the Skill tool — the hula skills set `disable-model-invocation: true`, so a Skill-tool invocation is rejected with "blocked by disable-model-invocation". Only reading the file and executing its steps works.
|
|
422
423
|
|
|
@@ -296,6 +296,37 @@ No local worktree was involved — PR was merged directly on GitHub.
|
|
|
296
296
|
|
|
297
297
|
---
|
|
298
298
|
|
|
299
|
+
## Step C: Report the Chat's Backlog
|
|
300
|
+
|
|
301
|
+
After presenting the Success Summary (Path A Step A5 or Path B Step B3), check this chat's backlog before finishing.
|
|
302
|
+
|
|
303
|
+
1. **Find the backlog.** Scan this conversation's history for a `<!-- hula-backlog: <key> -->` comment. If none is found, skip this step entirely — say nothing about a backlog.
|
|
304
|
+
2. **Resync to the dashboard (best-effort).** Before reading the file, retry the remote push for any item that couldn't sync earlier (e.g. added during `/hula-plan`, before a tracked `Plan` existed server-side). Resolve `<owner>/<repo>` via `gh repo view --json nameWithOwner -q .nameWithOwner`, then run:
|
|
305
|
+
- Path A (fix session): `hula script backlog-resync -- <key> --project <owner>/<repo> --tracking-name <prBranch>` (use the `prBranch` from the `<!-- hula-fix-session -->` comment resolved in Step 1).
|
|
306
|
+
- Path B (remote-only): `hula script backlog-resync -- <key> --project <owner>/<repo> --issue <issueNumber>` (use the issue number resolved in Step 1).
|
|
307
|
+
|
|
308
|
+
Ignore the output beyond confirming the command ran — a resync failure or a repo not configured for remote (`hulaApiKey`/`hulaProjectUrl`) is expected and must never block the report below. If you can't resolve `<owner>/<repo>`, skip the resync and proceed directly to reading the file.
|
|
309
|
+
3. **Read it.** Read `.hublaunch/.backlogs/<key>.json` directly (no script needed — this is read-only). If the file doesn't exist, or `items` is empty, or every item has `status: "done"`, display:
|
|
310
|
+
```
|
|
311
|
+
📋 No open backlog items for this chat — safe to close or archive.
|
|
312
|
+
```
|
|
313
|
+
4. **If there are open items** (`status: "open"`), display each one with a suggested next action, using judgment to pick the category:
|
|
314
|
+
- Trivial/mechanical and clearly actionable right now in this working tree → suggest doing it now.
|
|
315
|
+
- Requires a decision, credential, or external action only the user can take → state exactly what the user needs to do.
|
|
316
|
+
- A substantial independent feature/change → suggest a new chat, and offer the exact prompt: `/hula-plan <2-3 sentence restatement of the item as a goal>`.
|
|
317
|
+
|
|
318
|
+
```
|
|
319
|
+
📋 This chat has N open backlog item(s):
|
|
320
|
+
|
|
321
|
+
1. <item text>
|
|
322
|
+
→ <suggested next action, phrased per the category above>
|
|
323
|
+
|
|
324
|
+
2. <item text>
|
|
325
|
+
→ <suggested next action>
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
299
330
|
## Error Handling
|
|
300
331
|
|
|
301
332
|
### Merge Conflicts
|
|
@@ -63,6 +63,16 @@ Example: /hula-fix YizYah/hub-launch#42 the button validation is broken
|
|
|
63
63
|
|
|
64
64
|
Stop execution here. Do not proceed.
|
|
65
65
|
|
|
66
|
+
### Step 1.5: Create the Chat Backlog (if not already created)
|
|
67
|
+
|
|
68
|
+
If you have not already created a backlog for this chat, create one now — the same mechanism `/hula-plan` uses.
|
|
69
|
+
|
|
70
|
+
1. Scan this conversation's history for a prior `<!-- hula-backlog: <key> -->` comment. If found, reuse it.
|
|
71
|
+
2. If none found: generate `<key>` (`bl-` + 8 lowercase base-36 characters), run `hula script backlog-init -- <key>`, and emit `<!-- hula-backlog: <key> -->` in this response's output. If the script reports an error, log a one-line warning and continue.
|
|
72
|
+
3. Whenever something surfaces during this fix that should be tracked but is not part of the fix itself, run `hula script backlog-add -- <key> "<one-line item text>" --project <owner>/<repo> --issue <issueNumber>` and continue silently.
|
|
73
|
+
- `<issueNumber>` is the issue detected in Step 1. `<owner>/<repo>` comes from `gh repo view --json nameWithOwner -q .nameWithOwner`. (The branch/tracking name isn't known yet at this point in a fix, so identify the plan by issue number.)
|
|
74
|
+
- The `--project`/`--issue` args let the item sync to the `hula-project` dashboard when the repo is configured for remote (`hulaApiKey` + `hulaProjectUrl`). They're optional: if you can't resolve `<owner>/<repo>`, omit them and just run `hula script backlog-add -- <key> "<one-line item text>"` — the local backlog still works, and any unsynced item is retried automatically at `/hula-approve` time.
|
|
75
|
+
|
|
66
76
|
### Step 2: Setup Worktree and Session (Script)
|
|
67
77
|
|
|
68
78
|
Run the setup script — it handles issue lookup, validation, worktree creation, and session file writing in one terminal approval:
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: hula-launch
|
|
3
3
|
description: "Launch a validated plan: creates the GitHub issue and starts the cloud run that ends in a verified PR (offered automatically after /hula-plan). Use when the user asks to launch a plan."
|
|
4
4
|
disable-model-invocation: true
|
|
5
|
-
argument-hint: <branch-name> [<plan-path>] [--handoff <username>] [--test] [--skip-regression] [--kill] [--kill-and-relaunch] [--folder <path>] [--group-id <id>] [--plan <repo>=<path>]
|
|
5
|
+
argument-hint: <branch-name> [<plan-path>] [--handoff <username>] [--test] [--skip-regression] [--kill] [--kill-and-relaunch] [--folder <path>] [--group-id <id>] [--plan <repo>=<path>] [--issue <ref> | --pr <ref>] [--base <branch>]
|
|
6
6
|
allowed-tools: Bash Read
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -23,6 +23,15 @@ From `$ARGUMENTS`:
|
|
|
23
23
|
- In folder mode the plan path is resolved **per repository** — do NOT pass a positional plan path. A single positional is the branch name.
|
|
24
24
|
- **--group-id** (optional): `--group-id <id>`. Use an explicit group id instead of generating one (join/retry an existing group). Valid ids match `^[A-Za-z0-9_-]{1,64}$`.
|
|
25
25
|
- **--plan** (optional, repeatable): `--plan <repo>=<path>`. Override the auto-resolved plan for one repo in `--folder` mode. `<repo>` is the discovered directory name; `<path>` is relative to that repo's root.
|
|
26
|
+
- **--issue** (optional): `--issue <ref>` (a number, `#number`, or issue URL). Work on an **existing** GitHub issue: no new issue is created, the issue is never edited, and the PR links it with `Closes #N`.
|
|
27
|
+
- **--pr** (optional): `--pr <ref>` (a number, `#number`, or PR URL). Continue an **existing** same-repo pull request: the plan is committed to the PR's head branch and new commits are pushed on top. Fork PRs are rejected.
|
|
28
|
+
- **--base** (optional): `--base <branch>`. Cut the work branch from `<branch>` and open the PR into it. Not allowed with `--pr` (the PR already has a base).
|
|
29
|
+
- **Source from `/hula-plan`**: if `--issue`/`--pr` is not in `$ARGUMENTS`, look in the chat history for a `<!-- hula-source: --issue <n> -->` or `<!-- hula-source: --pr <n> -->` comment emitted by `/hula-plan` **for the same plan path** you resolve below (it is printed next to that plan's `<!-- hula-plan: <path> -->` comment). If found, use that flag as if the user had passed it. A `hula-source` comment for a different plan does not apply.
|
|
30
|
+
|
|
31
|
+
`--issue`/`--pr` cannot be combined with `--kill` or `--folder`. `--issue` and `--pr` together are only valid without a plan file — that combination is a direct CLI launch (`hula launch --issue <n> --pr <m>`), not a `/hula-launch` run; if both are present here, stop with:
|
|
32
|
+
```
|
|
33
|
+
❌ /hula-launch takes a plan, so pass --issue or --pr, not both. To work an issue on an existing PR without a plan, run: hula launch --issue <n> --pr <m>
|
|
34
|
+
```
|
|
26
35
|
|
|
27
36
|
`--kill` and `--kill-and-relaunch` are mutually exclusive; if the user passes both, stop with:
|
|
28
37
|
```
|
|
@@ -47,6 +56,14 @@ If no plan path is found in `$ARGUMENTS` or chat history (and `--kill` is not se
|
|
|
47
56
|
❌ No plan found in this chat. Run /hula-plan first, or pass the plan path as the second argument.
|
|
48
57
|
```
|
|
49
58
|
|
|
59
|
+
> 💡 **Launching from an existing GitHub issue or PR without a plan?** The
|
|
60
|
+
> normal path is `/hula-plan --issue <n>` / `/hula-plan --pr <n>`, which plans
|
|
61
|
+
> from the GitHub text and then launches through this skill with the source
|
|
62
|
+
> flag. To skip planning entirely, run the CLI directly: `hula launch --issue
|
|
63
|
+
> <ref>` or `hula launch --pr <ref>` generates the plan from the GitHub text
|
|
64
|
+
> (a single positional is then the tracking name, never a plan path). See the
|
|
65
|
+
> README's "Launch from an existing issue or PR".
|
|
66
|
+
|
|
50
67
|
## Step 2: Run the launch script
|
|
51
68
|
|
|
52
69
|
With the values known, run exactly one Bash command.
|
|
@@ -78,6 +95,13 @@ hula script launch-run -- <plan-path> <branch-name> --skip-regression
|
|
|
78
95
|
|
|
79
96
|
Append `--test` whenever the user passed it; it composes with `--handoff`. Append `--skip-regression` whenever the user passed it; it composes with `--handoff` and `--test` too.
|
|
80
97
|
|
|
98
|
+
**From an existing issue or PR** — append the source flag (from `$ARGUMENTS` or the plan's `hula-source` comment), and `--base` if given; they compose with the flags above:
|
|
99
|
+
```bash
|
|
100
|
+
hula script launch-run -- <plan-path> <branch-name> --issue <n>
|
|
101
|
+
hula script launch-run -- <plan-path> <branch-name> --pr <n>
|
|
102
|
+
hula script launch-run -- <plan-path> <branch-name> --issue <n> --base <branch>
|
|
103
|
+
```
|
|
104
|
+
|
|
81
105
|
**Stop the in-flight task without relaunching (`--kill`)** — pass only the branch name (no plan path):
|
|
82
106
|
```bash
|
|
83
107
|
hula script launch-run -- <branch-name> --kill
|
|
@@ -108,6 +132,21 @@ hula script launch-run -- <branch-name> --folder <parent-path> --kill
|
|
|
108
132
|
|
|
109
133
|
Parse the JSON output from the script:
|
|
110
134
|
- If `status` is `"error"`, display `❌ Launch failed: <message>` and stop.
|
|
135
|
+
- If `status` is `"success"` **and `prNumber` is non-empty** (a `--pr` launch), the work continues on the existing pull request. Display:
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
✅ Launched on existing PR #<prNumber> (branch `<branchName>` tracks it)
|
|
139
|
+
|
|
140
|
+
🔀 **Pull request**: <repo>#<prNumber> — new commits are pushed to its head branch
|
|
141
|
+
📋 **Issue**: <repo>#<issueNumber> (only when `issueNumber` is non-empty)
|
|
142
|
+
📄 **Plan**: `<planPath>`
|
|
143
|
+
|
|
144
|
+
<!-- hula-issue: <issueNumber> --> (only when `issueNumber` is non-empty)
|
|
145
|
+
|
|
146
|
+
**Next Steps:**
|
|
147
|
+
- Use `/hula-verify` to check implementation against the plan
|
|
148
|
+
- Use `/hula-approve` when ready to merge
|
|
149
|
+
```
|
|
111
150
|
- If `status` is `"success"` **and this was a `--kill` (cancel-only) run** — indicated by an empty `issueNumber` — there is no new issue/PR. Display a cancel summary instead of the launch template:
|
|
112
151
|
|
|
113
152
|
```
|