@nodeint/migent 0.1.5 → 0.1.7

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.
@@ -6,166 +6,168 @@ description: Set up Migent in a project, or configure, run, inspect, and resume
6
6
  # Migent
7
7
 
8
8
  Migent runs a project's multi-stage agent workflows from the `migent` CLI.
9
- A workflow is a set of stages; each stage runs a role; a role uses a model
10
- name defined in `.migent/config.yaml`. Each run is a session.
11
-
12
- ## Working rules
13
-
14
- - For an existing project, work from the root containing
15
- `.migent/config.yaml`.
16
- - Read `.migent/config.yaml` and the relevant file under
17
- `.migent/workflows/` before changing or running a workflow.
18
- - Before writing `.migent/config.yaml` or a file under `.migent/workflows/`,
19
- read `.agents/skills/migent/references/schema-config.yaml` and
20
- `.agents/skills/migent/references/schema-workflow.yaml`. They list every
21
- accepted key. A key absent from those files is ignored.
22
- - Run `migent doctor --json` after editing configuration or workflows. If it
23
- reports an outdated schema, run `migent migrate --yes`. Pass `--json` on
24
- `config model` and `config role` writes too. The object includes the doctor
25
- result.
9
+ A workflow is a set of stages. A stage runs a role, or runs `verify` alone when `role` is omitted. A role uses a model name
10
+ defined in `.migent/config.yaml`. Each run is a session, stored under
11
+ `.migent/sessions/<session-id>/`.
12
+
13
+ This skill is already in the prompt. Do not open its file again.
14
+
15
+ ## Rules
16
+
17
+ - Work from the project root, the directory containing `.migent/config.yaml`.
18
+ - Read `.migent/config.yaml` and the relevant `.migent/workflows/` file before
19
+ running a workflow.
20
+ - Before writing either, read `.agents/skills/migent/references/schema-config.yaml`
21
+ and `schema-workflow.yaml` in the same folder. A key absent from them is
22
+ ignored. Then run `migent doctor --json`; if it reports an outdated schema,
23
+ run `migent migrate --yes`.
26
24
  - You have no terminal for prompts. Pass `--no-input` (or set
27
25
  `MIGENT_NO_INPUT=1`) to `init`, `config model`, and `config role`, and give
28
26
  every value as a flag.
29
- - Treat `.migent/sessions/` as generated, resumable state. Do not edit
30
- `manifest.yaml`, `status.json`, `events.jsonl`, or files under
31
- `executions/`. In a prepared session, write `task.md` and files next to
32
- it before the first stage. Do not change `task.md` after that stage starts.
33
- - Preserve the user's task wording. Pass a one-line task in `--task`. Write
34
- a longer task into `task.md` unchanged.
35
- - A workflow `session run` or `session continue` prints `session_id`,
36
- `session_status`, `stop_reason`, `latest_decision`, and `outputs` on stdout.
37
- Stderr carries stage boundaries and errors. A role run prints a table unless
38
- `--json`. That JSON is the role result, not this object.
39
- - This skill is already in the prompt. Do not open its file again.
40
- - Do not read `task.md` or the documents it names. The stage agent reads
41
- them. Still read `.migent/config.yaml` and the workflow file before starting.
42
-
43
- ## Set up
44
-
45
- ```
46
- migent init --no-input --provider <provider> --model <model-id> [--preset implement|plan] [--option KEY=VALUE] [--skill]
27
+ - Do not edit generated session state: `manifest.yaml`, `status.json`,
28
+ `events.jsonl`, `metrics.json`, or anything under `executions/`.
29
+ - Keep the user's task wording. Do not read `task.md` or the documents it
30
+ names; the stage agent does.
31
+ - Never start a replacement session to reset limits or get past `blocked`.
32
+ Resume the same one.
33
+
34
+ ## Run a task
35
+
36
+ `<workflow>` is a workflow id or a path to a workflow file.
37
+
38
+ One-line task. The command runs until the session stops:
39
+
40
+ ```
41
+ migent session run --workflow <workflow> --task "<task>"
42
+ ```
43
+
44
+ Longer task. `<title>` is a display label such as `some task title`. The command prints a UUID `session_id`:
45
+
46
+ ```
47
+ migent session prepare "<title>" --workflow <workflow>
48
+ ```
49
+
50
+ Write the task, unchanged, to the printed `task_path` (plus any files next to it).
51
+ Do not edit `task.md` once the first stage has started.
52
+ Then:
53
+
54
+ ```
55
+ migent session run --session <session-id> --workflow <workflow>
56
+ ```
57
+
58
+ Dispatch only one stage: add `--once`.
59
+
60
+ ### Read the result
61
+
62
+ A workflow run prints plain lines on stderr and leaves stdout empty. It does
63
+ not print JSON, and it does not print the stage report.
64
+
65
+ - `session_id: <id>` when the session is created.
66
+ - `stage <id> · attempt <n> · <HH:MM:SS> · <provider>/<model> (<options>).` when a stage starts. A description follows the model when the stage has one.
67
+ - `stage <id> · attempt <n> · <duration> · <outcome>.` when it finishes. A decision is `decision=<value>` on that line.
68
+ - A completed session adds `completed · <duration>` and one `artifact: <absolute-path>` line per published file. The path starts at the filesystem root and names the published file, so the suffix stays, such as `plan.md`. Report those paths.
69
+ - Exit 1, 3, 6, and 8 also print `response: executions/<id>/response.md`. Read that file to see why it stopped.
70
+ - Exit 7 prints `verify: executions/<id>/turns/01/verify.md`.
71
+ - A session that stops before it is completed ends with `Resume with:` and `migent session continue <session-id>`.
72
+
73
+ - Do not pass `--verbose` or `--progress`. Do not use `session follow`.
74
+ - If the command runs in the background, wait for its completion notice. Do not
75
+ add a watcher that waits on the same exit.
76
+
77
+ ### Exit codes
78
+
79
+ Read the exit code first. Exit 0 with `completed ·` is a completed session.
80
+ Exit 0 without that line is `--once` after a complete stage.
81
+
82
+ | Exit | Meaning | What to do |
83
+ | --- | --- | --- |
84
+ | 0 | Completed, or with `--once` the stage is complete | Report each `artifact:` path when the session completed. |
85
+ | 1 | Blocked, or with `--once` the stage is not complete | If the stage line says `blocked`: read the `response:` path, then resume with the user's answer (below), or plain `session continue` once the blocker is fixed in the workspace. Otherwise `session continue` keeps going. |
86
+ | 2 | Configuration error | Run `migent doctor --json`, fix config. |
87
+ | 3 | A stage failed and the command did not wait | Read the `response:` path, fix the cause, `session continue`. Continue runs the stage and does not sleep until an old `retry_at`. |
88
+ | 4 | A route would exceed `max_revisions` | Review why the stage keeps being revised, then `session continue` for another batch. |
89
+ | 5 | `--max-dispatches` spent | `session continue` if more stages are appropriate. |
90
+ | 6 | A stage's `verify` stayed red | Read the `response:` path, fix the cause, `session continue`. |
91
+ | 7 | A stage with no role failed `verify` | Read the `verify:` path, fix the tree, `session continue`. That reruns the commands and does not open a provider. |
92
+ | 8 | `--once` or `--stage` hit a provider quota and did not wait | Read the `response:` path. `session continue` runs the stage and does not sleep until the recorded `retry_at`. |
93
+ | 130 | Cancelled, including a wait that was disarmed | Ask the user before resuming. Continue does not sleep until an old `retry_at`. |
94
+
95
+ A stopped session that is not `completed` is resumable. Do not call it done.
96
+
97
+ ### Resume
98
+
99
+ ```
100
+ migent session continue <session-id>
101
+ ```
102
+
103
+ Same command for a workflow session and a role session. Read `session_status`, then use one row.
104
+
105
+ | Kind | When | What to run |
106
+ | --- | --- | --- |
107
+ | Workflow | Not `completed`, including a blocker already fixed in the workspace | The command above. Runs until the session stops and resets revision counts. A blocked stage runs again. |
108
+ | Workflow | The user answered a blocked stage | Add `--reply "<reply>"`. That text is the whole prompt body. |
109
+ | Workflow | One stage, then stop | Add `--once`. Revision counts stay. |
110
+ | Role | `cancelled` | The command above. The cut-off turn resumes in the same execution. Omit `--reply`. |
111
+ | Role | `active` | The command above. The last prompt is sent again. |
112
+ | Role | `blocked` | Add `--reply "<reply>"`. That is the next user turn. With no reply, the agent is only told to continue. |
113
+ | Role | `completed` | Leave it stopped. Add `--reply` only to give a new turn. |
114
+
115
+ `--reply-file <path>` is a longer reply. Pass only one of `--reply` and `--reply-file`. Do not pass `--once` or `--stage` on a role session.
116
+
117
+ ## Check a session
118
+
119
+ ```
120
+ migent session show <session-id> --json
121
+ migent session list --latest --json
122
+ ```
123
+
124
+ `show` gives status, latest execution, decision, and outputs. `list --latest`
125
+ is the newest session, or `null`. Both include `title` when the session has one.
126
+ Report the session ID, title, status, stop reason,
127
+ decisions, and the outputs that matter. Output paths are relative to
128
+ `.migent/sessions/<session-id>/`; use the paths Migent reports.
129
+
130
+ ## Set up a project
131
+
132
+ ```
133
+ migent provider list --json
134
+ migent init --no-input --provider <provider> --model <model-id> [--preset implement|plan] [--skill]
47
135
  migent doctor --json
48
136
  ```
49
137
 
50
- `--provider` and `--model` go together. `--preset` picks the workflow to
51
- create (default `implement`). `--skill` installs this skill at
52
- `.agents/skills/migent`; `migent skill update` refreshes a managed copy.
53
-
54
- ## Run
55
-
56
- `migent session run` runs a workflow when `--workflow` is set, and one role
57
- when `--workflow` is omitted.
58
-
59
- - Start a one-line task: `migent session run --workflow <workflow> --task "<task>"`.
60
- `<workflow>` is a workflow id, or a path to a workflow file (the `id`
61
- field defaults to the file name). The sentence is stored in `task.md`.
62
- `--task` must be one line. Runs until the session stops.
63
- - Start a longer task: `migent session prepare <some-id> --workflow <workflow>`.
64
- `<some-id>` is a lowercase slug such as `wave-3` (letters, digits, and
65
- single hyphens). Write `.migent/sessions/<some-id>/task.md`, then
66
- `migent session run --session <some-id> --workflow <workflow>`.
67
- `session continue` does not start a prepared session.
68
- - Start and dispatch one stage only: add `--once`. `--once` requires `--workflow`.
69
- - If the workflow's `requires` block names a prerequisite workflow and
70
- decision, find it with
71
- `migent session list --workflow <workflow-id> --status completed --json`
72
- and pass `--prior <session-id>`. `session continue` accepts `--prior` too.
73
- - Resume an active workflow session: `migent session continue <session-id>`.
74
- This resets revision counts. `migent session continue <session-id> --once`
75
- advances one stage and does not reset them. A blocked session runs that stage
76
- again. `migent session continue <session-id> --reply "<reply>"` sends the
77
- reply as the new execution's prompt body. Use `--reply-file <path>` for a
78
- longer reply. When more than one stage is blocked, pass `--stage`. Without
79
- `--reply`, the prompt includes the blocker and the previous response.
80
- A cancelled session is resumed the same way, on the same execution: a cut-off
81
- provider turn is sent again, and a cut-off verify runs again. Ask the user
82
- before resuming a cancellation.
83
- - Run one role: `migent session run --role <role> --prompt "<prompt>"`.
84
- `roles.<role>.instructions` in config, when set, is prepended to that prompt.
85
- Use `--file <path>` or `--stdin` for a long prompt. `--task` labels a new
86
- role session and cannot be combined with `--session <session-id>`, which
87
- continues an earlier role session. `--provider`/`--model` (together) and
88
- `--option KEY=VALUE` override the role for this turn. Add `--json` for one
89
- result object. Exit 0 means the outcome is complete, 1 not complete.
90
- - Read the JSON result on stdout for a workflow run. Do not pass `--verbose`
91
- or `--progress`. `--verbose` inlines every stage response. `--progress`
92
- prints each tool call.
93
- - Exit 1, 3, and 6 also include `latest_execution_id` and `response_path`,
94
- relative to `.migent/sessions/<session-id>/`. Read that file when you must
95
- fix the execution.
96
- - Stderr is not the outcome. Do not read the command log while a run is healthy.
97
- - When `session run` or `session continue` is in the background, wait for that
98
- command's completion notice. Do not add a watcher that only waits for the same exit.
99
- - To check a run without waiting on the command, use
100
- `migent session show <session-id> --json` once.
101
- - Do not run `session follow` or `--cursor`.
102
-
103
- Limits, accepted by workflow `session run` and by `session continue`:
104
-
105
- - `--attempts <n>`: failed executions allowed for one stage (default 3). On
106
- `session continue` it sets a new total, not extra retries.
107
- - `--max-dispatches <n>`: stage dispatches allowed in this command (default
108
- 20). `--unlimited-dispatches` removes the ceiling; use it only if the user
109
- agrees.
110
-
111
- ### Exit codes and stop reasons
112
-
113
- A workflow result on stdout includes `stop_reason`. Read the exit code first.
114
-
115
- | Exit | Meaning | `stop_reason` | Session | What to do |
116
- | --- | --- | --- | --- | --- |
117
- | 0 | Completed (with `--once`: stage complete) | | completed or advancing | Report outputs. |
118
- | 1 | Blocked (with `--once`: stage not complete) | `blocked`, or `stage` with `--once` | blocked, or active with `--once` | When `stop_reason` is `blocked`, read `response_path`. Pass the user's words with `session continue --reply`, or `session continue` without `--reply` after the blocker is fixed in the workspace. When `stop_reason` is `stage`, `session continue` keeps going. |
119
- | 2 | Configuration error | | unchanged | Run `migent doctor --json`, fix config. |
120
- | 3 | `--attempts` spent | `retry_exhausted` | active | Read `response_path`, fix the cause, then `session continue` (add `--attempts` for a higher total). |
121
- | 4 | A route would exceed `max_revisions` | `revisions_exhausted` | active | Review why the stage keeps being revised; `session continue` (without `--once`) resets counts for another batch. |
122
- | 5 | `--max-dispatches` spent | `dispatch_limit` | active | `session continue` the same session if more stages are appropriate. |
123
- | 130 | Cancelled | | see snapshot | Ask the user before resuming. `session continue` resumes that same execution. |
124
-
125
- A stopped active session is resumable; do not describe it as completed. A
126
- blocked session is resumed the same way: `session continue` runs that stage
127
- again. Do not start a replacement session to reset limits or to get past
128
- `blocked`. If you change a workflow or
129
- config while a session is active, that session keeps the workflow, models, and
130
- role instructions it started with. Run `migent doctor --json` and tell the user.
131
- `migent session continue <session-id> --refresh-workflow` adopts the current
132
- workflow, models, and role instructions. `session run --session <id> --workflow <workflow> --refresh-workflow`
133
- does the same when starting a prepared session.
134
-
135
- ## Inspect sessions
136
-
137
- - Newest match: `migent session list --latest --json`. Add `--workflow <id>` and
138
- `--status active|prepared|completed|blocked|cancelled` to narrow it. `--limit <n>`
139
- returns the newest n rows. Do not combine `--latest` with `--limit`.
140
- - `--latest --json` is one object, or `null` when nothing matches. A list is
141
- a JSON array. Snapshot: `migent session show <session-id> --json` has the
142
- status, latest execution, decision, and outputs. JSON omits the task text.
143
- - Compare runs with `migent session metrics --json`. One session is one
144
- object. Several sessions are one object per line, newest first.
145
- `--workflow`, `--status`, and `--limit` match `session list`. Read
146
- `usage_missing` and `uncaptured_turns` before comparing totals.
147
- `stage_attempt` is not a retry count.
148
- - `session follow` streams the event trace for a person at a terminal.
149
- Do not use it or `--cursor` to coordinate a run.
150
-
151
- Report the session ID, status, stop reason, decisions, and published outputs
152
- that matter to the user. Published output paths are relative to
153
- `.migent/sessions/<session-id>/`; use the paths Migent reports instead of
154
- guessing.
155
-
156
- ## Configure models and roles
157
-
158
- - Show: `migent config` or `migent config show`.
159
- - List models or roles: `migent config model --json`,
160
- `migent config role --json`.
161
- - Change a model name:
162
- `migent config model <name> --provider <provider> --model <model-id> --no-input --json`.
163
- This updates every role and stage that uses the name. Use
164
- `--option KEY=VALUE` and `--clear-option KEY` for provider options.
165
- - Point roles at an existing model name:
166
- `migent config role <role>... --model-name <name> --no-input --json`. The value is
167
- a name from `models`, not a provider model id.
168
- - Override one role without touching the shared name:
169
- `migent config role <role> --provider <provider> --model <model-id> --no-input --json`.
170
- - `roles.<name>.instructions` is an optional list of strings. A stage prompt
171
- includes it before that stage's instructions. A role run prepends it to the prompt.
138
+ `--provider` and `--model` go together. The default preset is `implement`.
139
+ `provider list --json` shows which provider CLIs are on PATH and what model
140
+ ids each supports. Use it to pick a `<provider>` and `<model-id>` for `init`.
141
+ `--skill` installs this skill; `migent skill update` refreshes it.
142
+
143
+ ## Change models
144
+
145
+ Edit a model name (updates every role and stage that uses it):
146
+
147
+ ```
148
+ migent config model <name> --provider <provider> --model <model-id> --no-input --json
149
+ ```
150
+
151
+ Show the config with `migent config`, `migent config model --json`, or
152
+ `migent config role --json`.
153
+
154
+ ## Look up anything else
155
+
156
+ This skill covers the common path. Every command takes `--help`; use it before
157
+ guessing a flag:
158
+
159
+ ```
160
+ migent --help
161
+ migent session run --help
162
+ ```
163
+
164
+ References, read only when the task needs them:
165
+
166
+ | File | Read when |
167
+ | --- | --- |
168
+ | `references/schema-config.yaml`, `references/schema-workflow.yaml` | Writing config or a workflow. |
169
+ | `references/sessions.md` | Prerequisite session (`--prior`), several blocked stages (`--stage`), resuming a cancelled session, raising limits, adopting workflow edits (`--refresh-workflow`). |
170
+ | `references/config.md` | Running one role, pointing roles at another model, overriding one role, role instructions. |
171
+ | `references/inspect.md` | Filtering `session list`, comparing runs with `session metrics`, `session follow`. |
172
+
173
+ All paths are under `.agents/skills/migent/`.
@@ -0,0 +1,56 @@
1
+ # Roles and model configuration
2
+
3
+ Write commands take `--no-input --json`. The JSON includes the doctor result.
4
+
5
+ Run `migent provider list --json` to see which provider CLIs are available
6
+ and what model ids each supports. Use that output to pick a provider and
7
+ model id before using `config model` or `init`.
8
+
9
+ ## Run one role
10
+
11
+ Without `--workflow`, `session run` runs a single role:
12
+
13
+ ```
14
+ migent session run --role <role> --prompt "<prompt>"
15
+ ```
16
+
17
+ | Flag | Meaning |
18
+ | --- | --- |
19
+ | `--file <path>`, `--stdin` | Supply a long prompt. |
20
+ | `--task` | Labels a new role session. Cannot be combined with `--session`. |
21
+ | `--session <session-id>` | Sends a new prompt to an earlier role session. `session continue <session-id>` resumes a stopped role session. |
22
+ | `--provider`, `--model` | Override the role for this turn. Pass together. |
23
+ | `--option KEY=VALUE` | Override a provider option for this turn. |
24
+ | `--json` | Print one result object (the role result, with `outcome_status`; not the workflow result). |
25
+
26
+ Without `--json` it prints a table. Exit 0 means the outcome is complete, 1
27
+ not complete. `roles.<role>.instructions`, when set, is prepended to the prompt.
28
+
29
+ ## Model names
30
+
31
+ Provider options on a model name: `--option KEY=VALUE` to set,
32
+ `--clear-option KEY` to remove.
33
+
34
+ ```
35
+ migent config model <name> --provider <provider> --model <model-id> --no-input --json
36
+ ```
37
+
38
+ ## Point roles at an existing model name
39
+
40
+ The value is a name from `models`, not a provider model id.
41
+
42
+ ```
43
+ migent config role <role>... --model-name <name> --no-input --json
44
+ ```
45
+
46
+ ## Override one role without touching the shared name
47
+
48
+ ```
49
+ migent config role <role> --provider <provider> --model <model-id> --no-input --json
50
+ ```
51
+
52
+ ## Role instructions
53
+
54
+ `roles.<name>.instructions` is an optional list of strings. A stage prompt
55
+ includes it before that stage's instructions. A role run prepends it to the
56
+ prompt.
@@ -0,0 +1,32 @@
1
+ # Inspecting many sessions
2
+
3
+ For one session use `migent session show <session-id> --json` (SKILL.md).
4
+
5
+ ## List
6
+
7
+ ```
8
+ migent session list --workflow <id> --status completed --limit 5 --json
9
+ ```
10
+
11
+ - Output is a JSON array. `--latest` gives one object, or `null`; do not
12
+ combine it with `--limit`.
13
+ - `--status` is one of `active|prepared|completed|blocked|cancelled|corrupt`.
14
+ A session whose `status.json` does not parse is listed as `corrupt`.
15
+ - JSON rows omit the task text.
16
+
17
+ ## Metrics
18
+
19
+ ```
20
+ migent session metrics --json
21
+ ```
22
+
23
+ - One session prints its `metrics.json`. Several print one object per
24
+ line, newest first. Only a completed session has this file. `--workflow`,
25
+ `--status`, and `--limit` filter those rows.
26
+ - Read `usage_missing` and `uncaptured_turns` before comparing totals.
27
+ - `stage_attempt` is not a retry count.
28
+
29
+ ## Follow
30
+
31
+ `session follow` streams the event trace for a person at a terminal. Do not use
32
+ it or `--cursor` to coordinate a run.
@@ -2,9 +2,11 @@
2
2
  schema_version: 2
3
3
 
4
4
  # models.<name>.model is the provider model id.
5
+ # models.<name>.client is optional: the CLI client id (agy, claude-code, codex, grok, opencode); required for provider byteplus
6
+ # that drives this model. Omit it to use the provider's own client.
5
7
  # roles.<name>.default_model and a stage model are this name.
6
8
  # Options merge in order: model, then role, then stage.
7
- # Only keys the adapter marks overridable are stored on the provider session.
9
+ # Only keys the provider marks overridable are stored on the provider session.
8
10
  models:
9
11
  planner:
10
12
  provider: grok
@@ -19,9 +21,16 @@ models:
19
21
  # disallowed_tools, max_budget_usd, fallback_model, and append_system_prompt.
20
22
  # codex accepts model_reasoning_effort (overridable). Any other key of letters, digits,
21
23
  # dots, underscores, and hyphens is passed through as codex exec -c.
24
+ # opencode accepts agent and thinking (true sends --thinking, false sends nothing). Neither is overridable.
22
25
  options:
23
26
  reasoning-effort: high
24
27
 
28
+ coder:
29
+ provider: byteplus
30
+ # byteplus has no CLI of its own, so client is required and names the CLI that runs it.
31
+ client: opencode
32
+ model: coding-plan/deepseek-v4-pro
33
+
25
34
  roles:
26
35
  planner:
27
36
  default_model: planner
@@ -13,15 +13,25 @@ requires:
13
13
  workflow: plan
14
14
 
15
15
  stages:
16
+ - id: prepare
17
+ description: Check the tree before the draft.
18
+ # No role: Migent runs verify and does not start an agent.
19
+ verify:
20
+ - pnpm build
21
+ verify_timeout: 1800
22
+ depends_on: []
23
+
16
24
  - id: draft
25
+ description: Write the draft.
17
26
  role: planner
18
27
  # model is a name under models in config.yaml, not a provider model id.
19
28
  model: planner
20
29
  # Options merge in order: model, then role, then stage.
21
- # Only keys the adapter marks overridable are stored on the provider session.
30
+ # Only keys the provider marks overridable are stored on the provider session.
22
31
  options:
23
32
  reasoning-effort: high
24
- depends_on: []
33
+ depends_on:
34
+ - prepare
25
35
  # max_revisions is allowed only when a route returns to this stage.
26
36
  max_revisions: 2
27
37
  instructions:
@@ -0,0 +1,65 @@
1
+ # Sessions: uncommon run and resume cases
2
+
3
+ The everyday commands are in SKILL.md. This file covers the rest.
4
+
5
+ ## Prerequisite session (`--prior`)
6
+
7
+ If the workflow's `requires` block names a prerequisite workflow and decision,
8
+ find the session:
9
+
10
+ ```
11
+ migent session list --workflow <workflow-id> --status completed --json
12
+ ```
13
+
14
+ Then pass its id with `--prior <session-id>`. `session continue` accepts
15
+ `--prior` too.
16
+
17
+ ## Several blocked stages
18
+
19
+ When more than one stage is blocked, `session continue` needs the stage:
20
+
21
+ ```
22
+ migent session continue <session-id> --stage <stage> --reply "<reply>"
23
+ ```
24
+
25
+ The other stages stay blocked.
26
+
27
+ ## Cancelled session (exit 130)
28
+
29
+ Ask the user first. `session continue <session-id>` resumes that same
30
+ execution. A cut-off verify runs again. A cancelled stage with no role
31
+ reruns its verify list in place and does not open a provider. Role status
32
+ and `--reply` are in the skill's Resume section.
33
+
34
+ ## Limits
35
+
36
+ Accepted by workflow `session run` and by `session continue`.
37
+
38
+ | Flag | Meaning |
39
+ | --- | --- |
40
+ | `--max-dispatches <n>` | Stage dispatches allowed in this command (default 20). |
41
+ | `--unlimited-dispatches` | Removes the dispatch ceiling. Use only if the user agrees. |
42
+
43
+ A failed stage stays stopped until `session continue`. That command runs the
44
+ stage and does not sleep until an old `retry_at`. Exit 3 is `stage_failed`.
45
+ Exit 8 is `quota` for `--once` and `--stage`, which do not wait. Exit 130
46
+ during a wait disarms the timer. A single role result uses 0, 1, and 130.
47
+ Exit 6 remains only the path that reopened more than one role execution.
48
+
49
+ ## `--once` and revision counts
50
+
51
+ `session continue <id>` resets revision counts. `session continue <id> --once`
52
+ advances one stage and does not.
53
+
54
+ ## Config changed during a session
55
+
56
+ A session keeps the workflow, models, and role instructions it started with.
57
+ Later edits warn on stderr and do not change it. Run `migent doctor --json`
58
+ and tell the user. To adopt the current versions:
59
+
60
+ ```
61
+ migent session continue <session-id> --refresh-workflow
62
+ migent session run --session <session-id> --workflow <workflow> --refresh-workflow
63
+ ```
64
+
65
+ The second form is for starting a prepared session.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nodeint/migent",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "Compose AI coding agents into repeatable engineering workflows.",
5
5
  "keywords": [
6
6
  "ai",
@@ -43,9 +43,9 @@
43
43
  },
44
44
  "dependencies": {
45
45
  "@clack/prompts": "^1.8.1",
46
- "@nodeint/migent-adapters": "0.1.5",
47
- "@nodeint/migent-kernel": "0.1.5",
48
- "@nodeint/migent-registry": "0.1.5",
46
+ "@nodeint/migent-adapters": "0.1.7",
47
+ "@nodeint/migent-kernel": "0.1.7",
48
+ "@nodeint/migent-registry": "0.1.7",
49
49
  "commander": "^14.0.2",
50
50
  "picocolors": "^1.1.1"
51
51
  },