@ramon-sg/issue-flow 0.3.5 → 0.4.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/README.md +4 -4
- package/dist/commands/apply.js +1 -1
- package/dist/commands/session.d.ts +2 -2
- package/dist/commands/session.js +8 -8
- package/dist/settings-hooks.d.ts +1 -1
- package/dist/settings-hooks.js +5 -5
- package/dist/usage.d.ts +1 -1
- package/dist/usage.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Flujo de trabajo de issue a PR para cualquier repo, en local y en las sesiones de Claude en la nube: nombra la rama de cada issue, crea su worktree con puertos y Docker propios, abre el PR en draft y limpia cuando se mergea. Trae las skills que usan ese flujo.
|
|
4
4
|
|
|
5
|
-
> **Instalar en un repo:** `npx agent-kitchen apply`, que instala este flujo con sus skills, las skills generales, `
|
|
5
|
+
> **Instalar en un repo:** `npx agent-kitchen apply`, que instala este flujo con sus skills, las skills generales, `agent-cloud-kit` y `claude-repo-guard`, y los actualiza ([agent-kitchen](https://github.com/ramon-sg/agent-kitchen)). El paquete es `@ramon-sg/issue-flow` y el comando, `issue-flow`; sin el scope, `issue-flow` en npm es otro paquete.
|
|
6
6
|
|
|
7
7
|
## Qué va a tener
|
|
8
8
|
|
|
@@ -13,7 +13,7 @@ Flujo de trabajo de issue a PR para cualquier repo, en local y en las sesiones d
|
|
|
13
13
|
- **`issue-flow worktree setup|teardown|ports|cleanup|prune`:** prepara y limpia cada worktree con los pasos del repo, le da un bloque de puertos y borra los worktrees con el PR cerrado.
|
|
14
14
|
- **`issue-flow pr worktree <n>`:** abre un PR en su propio worktree, en la rama del PR, para revisarlo sin soltar lo que estás haciendo.
|
|
15
15
|
- **`issue-flow adapter setup|issue|archive`:** lo que corren Orca y Paseo al crear o borrar un worktree.
|
|
16
|
-
- **`issue-flow session`:** el hook `SessionStart`; en la nube llama a [`
|
|
16
|
+
- **`issue-flow session`:** el hook `SessionStart`; en la nube llama a [`agent-cloud-kit`](https://github.com/ramon-sg/agent-cloud-kit).
|
|
17
17
|
- **`issue-flow hook worktree-create|worktree-remove`:** los hooks `WorktreeCreate` y `WorktreeRemove` de Claude Code, para `claude --worktree`.
|
|
18
18
|
- **Skills:** `github-issues`, `start-issue`, `finish-pr`, `close-pr`, `pr-review-comments` y `pr-worktree`.
|
|
19
19
|
|
|
@@ -175,7 +175,7 @@ scripts:
|
|
|
175
175
|
|
|
176
176
|
Es el hook `SessionStart` de Claude Code. Lo que imprime le llega a Claude como contexto, así que ahí van los avisos. Nunca hace fallar la sesión.
|
|
177
177
|
|
|
178
|
-
1. En una sesión en la nube (`CLAUDE_CODE_REMOTE=true`), corre `
|
|
178
|
+
1. En una sesión en la nube (`CLAUDE_CODE_REMOTE=true`), corre `agent-cloud-kit session`. Si no está, dice qué setup script poner en claude.ai.
|
|
179
179
|
2. En un worktree (o en el checkout de la nube), corre los pasos de `setup`. La carpeta sale del `cwd` que manda Claude, que con `claude --worktree` es la del worktree, y si no viene, de `CLAUDE_PROJECT_DIR`.
|
|
180
180
|
3. Si un worktree local está en la rama de una issue que no está en origin, avisa que la issue no quedó empezada.
|
|
181
181
|
4. Borra el Docker de los worktrees que ya no existen: Claude Code no llama al hook `WorktreeRemove` de los worktrees que no hizo un hook `WorktreeCreate`.
|
|
@@ -197,7 +197,7 @@ npx @ramon-sg/issue-flow doctor # revisa que el repo esté com
|
|
|
197
197
|
|
|
198
198
|
1. **`.agents/flow.json`:** si no existe, lo crea con el `$schema` de esta versión y, si el repo tiene `paseo.json`, con su plantilla de rama y sus tipos. Esa primera vez propone las recetas que sugieren los archivos del repo (con `--yes`, todas; sin terminal y sin `--yes`, no escribe nada y lo dice). Si ya existe, no pregunta: corre las migraciones de esta versión, mueve el `$schema` y suma las recetas de `--recipe`.
|
|
199
199
|
2. **`package.json`:** `@ramon-sg/issue-flow` en esta versión, exacta. `@ramon-sg/github-rest` y los scripts `issue:start`, `issue:start:free`, `worktree:prune` y `pr:worktree` solo si faltan (`issue:start:free` no se agrega si el repo tiene su propio `issue:start`, que se saltaría): un `github-rest` que el repo ya tiene se queda, con un aviso si no llega a la versión que necesitan las skills.
|
|
200
|
-
3. **`.claude/settings.json`:** los hooks `SessionStart`, `WorktreeCreate` y `WorktreeRemove`, fijados a esta versión y con 600 segundos. El de `SessionStart` corre `
|
|
200
|
+
3. **`.claude/settings.json`:** los hooks `SessionStart`, `WorktreeCreate` y `WorktreeRemove`, fijados a esta versión y con 600 segundos. El de `SessionStart` corre `agent-cloud-kit session` en la nube, así que un hook propio de `agent-cloud-kit` se quita para que no corra dos veces.
|
|
201
201
|
|
|
202
202
|
No consulta npm, y nunca baja de versión: si el repo ya tiene una issue-flow más nueva (por ejemplo, `package.json` subido a mano antes del `install`), o un rango como `^0.2.6`, se detiene y dice qué correr. `--json` da `{ version, changes, kept, written, next }`. Sale con 0 si aplicó o no había nada que hacer, y con 1 si se negó o tenía que preguntar y no pudo.
|
|
203
203
|
|
package/dist/commands/apply.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* to this version. It changes no other version: who updates picks the version by picking
|
|
8
8
|
* which one to run (`npx @ramon-sg/issue-flow@<version> apply`). It refuses when the repo
|
|
9
9
|
* already has a newer issue-flow, or a range, since the hooks need an exact one. The skills,
|
|
10
|
-
* `
|
|
10
|
+
* `agent-cloud-kit` and `claude-repo-guard` are `agent-kitchen`'s, which runs this command.
|
|
11
11
|
*/
|
|
12
12
|
import { confirm } from "../ask.js";
|
|
13
13
|
import { CONFIG_PATH, isObject } from "../config-base.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { FlowConfig } from "../config.js";
|
|
2
2
|
import type { Output } from "../output.js";
|
|
3
|
-
/** Where the cloud environment's setup leaves the `
|
|
4
|
-
export declare const
|
|
3
|
+
/** Where the cloud environment's setup leaves the `agent-cloud-kit` command. */
|
|
4
|
+
export declare const AGENT_CLOUD_KIT_BIN = "/opt/agent-cloud-kit/bin/agent-cloud-kit";
|
|
5
5
|
/**
|
|
6
6
|
* `issue-flow session`.
|
|
7
7
|
* @param options - The config and the session's folder.
|
package/dist/commands/session.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file `issue-flow session`: the `SessionStart` hook of Claude Code. What it prints on
|
|
3
3
|
* stdout reaches Claude as the session's context, so every warning goes there. Its steps:
|
|
4
|
-
* in a cloud session, `
|
|
4
|
+
* in a cloud session, `agent-cloud-kit session` (tools, Docker, the full history and the
|
|
5
5
|
* repo's session steps); in a worktree (or the cloud's checkout), the setup steps; in a
|
|
6
6
|
* local worktree whose issue branch is not published, a warning to run `start-issue`; the
|
|
7
7
|
* cleanup of the Docker of deleted worktrees (Claude Code does not call `WorktreeRemove`
|
|
@@ -18,24 +18,24 @@ import { issueOfBranch } from "../issue-text.js";
|
|
|
18
18
|
import { inPath } from "../launch.js";
|
|
19
19
|
import { runSetup } from "../worktree-steps.js";
|
|
20
20
|
import { stepPlace } from "./worktree.js";
|
|
21
|
-
/** Where the cloud environment's setup leaves the `
|
|
22
|
-
export const
|
|
21
|
+
/** Where the cloud environment's setup leaves the `agent-cloud-kit` command. */
|
|
22
|
+
export const AGENT_CLOUD_KIT_BIN = "/opt/agent-cloud-kit/bin/agent-cloud-kit";
|
|
23
23
|
/** The package that prepares the cloud, for the message of what to set in claude.ai. */
|
|
24
|
-
const
|
|
24
|
+
const AGENT_CLOUD_KIT_PACKAGE = "agent-cloud-kit";
|
|
25
25
|
/**
|
|
26
|
-
* In a cloud session, runs `
|
|
26
|
+
* In a cloud session, runs `agent-cloud-kit session` (`AGENT_CLOUD_KIT_BIN` changes where it is
|
|
27
27
|
* looked for). Its output goes to stderr, as its steps print their own.
|
|
28
28
|
* @param root - The checkout.
|
|
29
29
|
* @param say - Where a message for Claude goes.
|
|
30
30
|
*/
|
|
31
31
|
function cloudSession(root, say) {
|
|
32
|
-
const bin = process.env.
|
|
32
|
+
const bin = process.env.AGENT_CLOUD_KIT_BIN ?? AGENT_CLOUD_KIT_BIN;
|
|
33
33
|
if (!existsSync(bin)) {
|
|
34
|
-
say(`the environment setup did not run (there is no ${bin}). In claude.ai, set the environment's setup script to: npx -y ${
|
|
34
|
+
say(`the environment setup did not run (there is no ${bin}). In claude.ai, set the environment's setup script to: npx -y ${AGENT_CLOUD_KIT_PACKAGE}@1 setup. It applies to new sessions.`);
|
|
35
35
|
return;
|
|
36
36
|
}
|
|
37
37
|
if (spawnSync(bin, ["session"], { cwd: root, stdio: ["ignore", 2, 2] }).status !== 0)
|
|
38
|
-
say(`
|
|
38
|
+
say(`agent-cloud-kit session failed; run '${bin} session' in ${root} to see why.`);
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
41
|
* The issue of a local worktree whose branch has the issue's number and is not in origin:
|
package/dist/settings-hooks.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export declare const HOOK_EVENTS: string[];
|
|
|
10
10
|
export declare function hookCommand(event: string, version: string): string;
|
|
11
11
|
/**
|
|
12
12
|
* Registers our hooks at a version: moves the version of the ones already there and adds
|
|
13
|
-
* the missing ones. In `SessionStart` it drops
|
|
13
|
+
* the missing ones. In `SessionStart` it drops an `agent-cloud-kit session` hook that is not
|
|
14
14
|
* ours.
|
|
15
15
|
* @param settings - The settings, or null if there is no file.
|
|
16
16
|
* @param version - This package's version.
|
package/dist/settings-hooks.js
CHANGED
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
* (`issue-flow session`) and `WorktreeCreate` and `WorktreeRemove` (`issue-flow hook …`), each
|
|
4
4
|
* pinned to this package's version. They are found again by their command, so running
|
|
5
5
|
* `apply` twice changes nothing, and a new version only moves the version. The `SessionStart`
|
|
6
|
-
* command names `
|
|
7
|
-
* way `
|
|
6
|
+
* command names `agent-cloud-kit session`, which `issue-flow session` runs in the cloud: that
|
|
7
|
+
* way `agent-cloud-kit init` sees it and does not add its own, and a hook of `agent-cloud-kit`
|
|
8
8
|
* already there is dropped, so it does not run twice.
|
|
9
9
|
*/
|
|
10
10
|
import { isObject } from "./config-base.js";
|
|
11
11
|
import { PACKAGE, SETTINGS_FILE, SetupError } from "./setup-files.js";
|
|
12
12
|
/** Seconds each hook may take: the setup steps can install dependencies. */
|
|
13
13
|
const HOOK_TIMEOUT_SECONDS = 600;
|
|
14
|
-
/** What `
|
|
15
|
-
const CLOUD_MARKER = "
|
|
14
|
+
/** What `agent-cloud-kit init` looks for in a `SessionStart` command. */
|
|
15
|
+
const CLOUD_MARKER = "agent-cloud-kit session";
|
|
16
16
|
/** The subcommand of each hook, and what follows it. */
|
|
17
17
|
const HOOK_COMMANDS = {
|
|
18
18
|
SessionStart: { sub: "session", note: ` # runs ${CLOUD_MARKER} in the cloud` },
|
|
@@ -70,7 +70,7 @@ function hooksOf(entry) {
|
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
72
72
|
* Registers our hooks at a version: moves the version of the ones already there and adds
|
|
73
|
-
* the missing ones. In `SessionStart` it drops
|
|
73
|
+
* the missing ones. In `SessionStart` it drops an `agent-cloud-kit session` hook that is not
|
|
74
74
|
* ours.
|
|
75
75
|
* @param settings - The settings, or null if there is no file.
|
|
76
76
|
* @param version - This package's version.
|
package/dist/usage.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @file The usage text of the CLI, printed with `--help` and after a usage error.
|
|
3
3
|
*/
|
|
4
4
|
/** Usage text. */
|
|
5
|
-
export declare const USAGE = "Usage:\n issue-flow issue branch <n>... [--namer claude|title] [--json] [-R owner/repo]\n issue-flow issue branch --missing [--limit <n>] [--namer claude|title] [--dry-run | --yes] [--json] [-R owner/repo]\n issue-flow issue start <n> [--branch] [--dry-run | --yes] [--resume <branch> | --new] [--no-launch]\n [--ask-permissions | --free [--no-repo-deny]] [--namer claude|title] [-R owner/repo]\n issue-flow issue start <n> --plan [--ask-permissions | --free] [--namer claude|title] [-R owner/repo]\n issue-flow issue start <n> --cloud | --here | --teleport | --adopt [...]\n issue-flow worktree setup [--only <step>]\n issue-flow worktree teardown [--path <dir>]\n issue-flow worktree ports [--next]\n issue-flow worktree cleanup [--path <dir>]\n issue-flow worktree prune [--only <dir>] [--yes] [-R owner/repo]\n issue-flow pr worktree <n> [--no-setup] [-R owner/repo] [-- [<command>...]]\n issue-flow adapter setup [--only <step>] | issue [<url>] | archive [-R owner/repo]\n issue-flow session\n issue-flow hook worktree-create | worktree-remove\n issue-flow apply [--yes] [--dry-run] [--json] [--recipe <name>,...]\n issue-flow doctor [--json]\n issue-flow labels sync [--update] [--dry-run] [--json] [-R owner/repo]\n\nThe slug comes from the issue's \"Slug de rama\" block, then from Claude, then from the title,\nand the branch from the repo's template (an older \"Rama sugerida\" block is used if it fits).\n--missing adds the slug block to every open issue without a block, after confirming.\n\nissue start makes the branch in a worktree (or, with --branch, in this checkout), the\nstart commit, the push, the draft PR and the assignment, after confirming, and opens\nClaude: in auto mode if the repo has claude-repo-guard, with your settings with\n--ask-permissions, with no sandbox nor questions with --free, and also without the repo's\ndeny rules with --free --no-repo-deny. --plan prints the branch and the prompt as JSON and\nchanges nothing. issue start --help explains each flag.\n\n--cloud confirms here and opens a Claude cloud session that starts the issue there.\n--here, inside a cloud session, starts it in this checkout and opens nothing. --teleport\nbrings the cloud session noted in the PR to the worktree. --adopt starts it in the\nworktree another tool (Orca, Paseo) just made, without asking nor opening Claude.\n\nworktree runs the steps of \"worktrees\" in .agents/flow.json: setup prepares this worktree,\nteardown cleans it before it goes (steps, ports, Docker), ports prints or moves its block\nof ports, cleanup deletes the Docker of deleted worktrees, and prune deletes the worktrees\nwhose PR was merged or closed, then moves the local base forward to origin's (only if\nnothing is lost: not with changes where it is checked out, nor with commits not in\norigin). session is the SessionStart hook of Claude Code.\n\npr worktree makes (or reuses) a worktree on a PR's own branch, to review and fix it; with\n--, it runs the command there (Claude if none). adapter is what Orca and Paseo run: setup\nwhen they make a worktree (its steps and, if it came from an issue, issue start --adopt),\nissue to start one by hand, and archive before they delete it. hook implements Claude\nCode's WorktreeCreate and WorktreeRemove for claude --worktree.\n\napply leaves the repo as this version needs it: .agents/flow.json (the first time, with\nthe recipes its files suggest), issue-flow at this version and github-rest and the scripts\nif missing in package.json, and the hooks; it changes no other version, and refuses a newer\nissue-flow or a range. doctor checks them. npx agent-kitchen apply runs apply at the version\nit picks, along with the skills,
|
|
5
|
+
export declare const USAGE = "Usage:\n issue-flow issue branch <n>... [--namer claude|title] [--json] [-R owner/repo]\n issue-flow issue branch --missing [--limit <n>] [--namer claude|title] [--dry-run | --yes] [--json] [-R owner/repo]\n issue-flow issue start <n> [--branch] [--dry-run | --yes] [--resume <branch> | --new] [--no-launch]\n [--ask-permissions | --free [--no-repo-deny]] [--namer claude|title] [-R owner/repo]\n issue-flow issue start <n> --plan [--ask-permissions | --free] [--namer claude|title] [-R owner/repo]\n issue-flow issue start <n> --cloud | --here | --teleport | --adopt [...]\n issue-flow worktree setup [--only <step>]\n issue-flow worktree teardown [--path <dir>]\n issue-flow worktree ports [--next]\n issue-flow worktree cleanup [--path <dir>]\n issue-flow worktree prune [--only <dir>] [--yes] [-R owner/repo]\n issue-flow pr worktree <n> [--no-setup] [-R owner/repo] [-- [<command>...]]\n issue-flow adapter setup [--only <step>] | issue [<url>] | archive [-R owner/repo]\n issue-flow session\n issue-flow hook worktree-create | worktree-remove\n issue-flow apply [--yes] [--dry-run] [--json] [--recipe <name>,...]\n issue-flow doctor [--json]\n issue-flow labels sync [--update] [--dry-run] [--json] [-R owner/repo]\n\nThe slug comes from the issue's \"Slug de rama\" block, then from Claude, then from the title,\nand the branch from the repo's template (an older \"Rama sugerida\" block is used if it fits).\n--missing adds the slug block to every open issue without a block, after confirming.\n\nissue start makes the branch in a worktree (or, with --branch, in this checkout), the\nstart commit, the push, the draft PR and the assignment, after confirming, and opens\nClaude: in auto mode if the repo has claude-repo-guard, with your settings with\n--ask-permissions, with no sandbox nor questions with --free, and also without the repo's\ndeny rules with --free --no-repo-deny. --plan prints the branch and the prompt as JSON and\nchanges nothing. issue start --help explains each flag.\n\n--cloud confirms here and opens a Claude cloud session that starts the issue there.\n--here, inside a cloud session, starts it in this checkout and opens nothing. --teleport\nbrings the cloud session noted in the PR to the worktree. --adopt starts it in the\nworktree another tool (Orca, Paseo) just made, without asking nor opening Claude.\n\nworktree runs the steps of \"worktrees\" in .agents/flow.json: setup prepares this worktree,\nteardown cleans it before it goes (steps, ports, Docker), ports prints or moves its block\nof ports, cleanup deletes the Docker of deleted worktrees, and prune deletes the worktrees\nwhose PR was merged or closed, then moves the local base forward to origin's (only if\nnothing is lost: not with changes where it is checked out, nor with commits not in\norigin). session is the SessionStart hook of Claude Code.\n\npr worktree makes (or reuses) a worktree on a PR's own branch, to review and fix it; with\n--, it runs the command there (Claude if none). adapter is what Orca and Paseo run: setup\nwhen they make a worktree (its steps and, if it came from an issue, issue start --adopt),\nissue to start one by hand, and archive before they delete it. hook implements Claude\nCode's WorktreeCreate and WorktreeRemove for claude --worktree.\n\napply leaves the repo as this version needs it: .agents/flow.json (the first time, with\nthe recipes its files suggest), issue-flow at this version and github-rest and the scripts\nif missing in package.json, and the hooks; it changes no other version, and refuses a newer\nissue-flow or a range. doctor checks them. npx agent-kitchen apply runs apply at the version\nit picks, along with the skills, agent-cloud-kit and claude-repo-guard. init and upgrade still\nrun apply, with a warning, until 0.4.0.\n\nlabels sync makes in GitHub the labels the flow wants (\"labels\" in .agents/flow.json: the\nissue types and P1 to P4 by default) that the repo lacks. Names ignore case and are never\nrenamed nor deleted; --update also fixes the color and description of those that differ.";
|
|
6
6
|
/** Usage text of `issue start`, printed with `issue start --help`. */
|
|
7
7
|
export declare const START_USAGE = "Usage: issue-flow issue start <n> [flags]\n\nStarts issue <n>: the branch (in a worktree, or in this checkout with --branch), the empty\nstart commit, the push, the draft PR and the assignment, after confirming; then it opens\nClaude there.\n\nFlags:\n --dry-run show what it would do and change nothing\n -y, --yes do it without asking\n --branch in this checkout instead of a worktree\n --resume <branch> take that branch of the issue\n --new make another branch, even if the issue has one\n --no-launch leave everything ready and do not open Claude\n --namer claude|title who names the branch when the issue has no slug block\n -R owner/repo another repo than the checkout's\n --plan print the branch and the prompt as JSON, and change nothing\n --cloud open a Claude cloud session that starts the issue there\n --here inside a cloud session, start it in this checkout\n --teleport bring the cloud session noted in the PR to the worktree\n --adopt start it in the worktree Orca or Paseo just made\n -h, --help this help\n\nPermissions of the Claude it opens (one at most):\n (none) auto mode if the repo has claude-repo-guard, else your settings\n --ask-permissions your settings: Claude asks before what they do not allow\n --free no sandbox and no questions, as claude:free\n --no-repo-deny with --free: also without the deny rules of the repo's settings\n\nWhat each one takes away, and what stays:\n (none), --ask-permissions\n take nothing away: the sandbox, the questions your settings ask\n and every deny rule stay.\n --free takes away the sandbox and the questions. Every deny rule stays:\n yours (~/.claude), the repo's (.claude/settings.json) and the\n local ones (.claude/settings.local.json).\n --free --no-repo-deny\n also takes the deny rules out of the worktree's\n .claude/settings.json while Claude runs, and puts them back when it\n exits; git does not see the change meanwhile. Your deny rules and the\n local ones stay, and so do the repo's hooks, attribution, CLAUDE.md,\n skills, agents and MCP servers. If Claude changes that file, the\n rules go back on top of its change, with a warning to review it. If\n the terminal closes first, the next issue start of the issue puts\n them back.\n\nFrom the repo's scripts (issue:start, and issue:start:free, which adds --free):\n npm run issue:start:free 42 npm passes a number on as it is\n npm run issue:start -- 42 --free but keeps the flags for itself, unless after --\n pnpm issue:start 42 --free pnpm, bun and yarn pass everything on\n bun run issue:start 42 --free\n yarn issue:start 42 --free\nA -- does no harm with any of them: issue-flow drops it.\n\nissue:start:free does not go with --ask-permissions, --cloud, --here nor --adopt: use\nissue:start for those. --no-repo-deny goes after it, as any flag:\n npm run issue:start:free -- 42 --no-repo-deny\n pnpm issue:start:free 42 --no-repo-deny";
|
|
8
8
|
/**
|
package/dist/usage.js
CHANGED
|
@@ -55,7 +55,7 @@ apply leaves the repo as this version needs it: .agents/flow.json (the first tim
|
|
|
55
55
|
the recipes its files suggest), issue-flow at this version and github-rest and the scripts
|
|
56
56
|
if missing in package.json, and the hooks; it changes no other version, and refuses a newer
|
|
57
57
|
issue-flow or a range. doctor checks them. npx agent-kitchen apply runs apply at the version
|
|
58
|
-
it picks, along with the skills,
|
|
58
|
+
it picks, along with the skills, agent-cloud-kit and claude-repo-guard. init and upgrade still
|
|
59
59
|
run apply, with a warning, until 0.4.0.
|
|
60
60
|
|
|
61
61
|
labels sync makes in GitHub the labels the flow wants ("labels" in .agents/flow.json: the
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ramon-sg/issue-flow",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Issue-to-PR workflow for any repo: names each issue's branch, creates its worktree, opens the draft PR and launches Claude Code, locally and in Claude's cloud.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|