aligndev 0.19.0 → 0.20.1
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 +34 -130
- package/dist/cli.js +10 -14
- package/dist/code/code-cli.d.ts +2 -2
- package/dist/code/code-cli.js +7 -5
- package/dist/code/coding-agent.d.ts +1 -0
- package/dist/code/coding-agent.js +10 -0
- package/dist/code/run-agent.js +1 -1
- package/dist/config.d.ts +10 -7
- package/dist/config.js +25 -20
- package/dist/guide/code-guide.js +2 -2
- package/dist/guide/guide-cli.d.ts +2 -2
- package/dist/guide/guide-cli.js +5 -5
- package/dist/project/project-cli.d.ts +2 -2
- package/dist/project/project-cli.js +1 -1
- package/package.json +2 -2
- package/templates/guide/code.md +34 -34
- package/templates/guide/playbook/channel-handling.md +2 -3
- package/templates/guide/playbook/consultation.md +4 -4
- package/templates/guide/playbook/playbook.md +18 -13
- package/templates/guide/playbook/project-lifecycle.md +8 -8
- package/templates/guide/playbook/project-workspace-setup.md +5 -5
- package/templates/guide/playbook/working-session.md +44 -44
- package/templates/guide/project.md +1 -1
|
@@ -169,10 +169,10 @@ For new single-project work where the user explicitly says there is no ticket or
|
|
|
169
169
|
5. Run `{{ALIGNFIRST}} sync`.
|
|
170
170
|
|
|
171
171
|
{{#openclaw}}
|
|
172
|
-
The bot owns this reservation and the request capture; the
|
|
172
|
+
The bot owns this reservation and the request capture; the agent receives TICKET_ID. Do not use `{{ALIGNDEV}} code new --no-ticket`: TICKET_ID must exist before delegation, for the request file and the workspace. Continue to workspace setup with the side ticket as TICKET_ID, then run the coding protocol from the returned linked worktree.
|
|
173
173
|
{{/openclaw}}
|
|
174
174
|
{{#codingAgent}}
|
|
175
|
-
You own this reservation and the request capture; the
|
|
175
|
+
You own this reservation and the request capture; the agent receives TICKET_ID. Do not use `{{ALIGNDEV}} code new --no-ticket`: TICKET_ID must exist before delegation, for the request file and the workspace. Continue to workspace setup with the side ticket as TICKET_ID, then run the coding protocol from the returned linked worktree.
|
|
176
176
|
{{/codingAgent}}
|
|
177
177
|
|
|
178
178
|
{{#openclaw}}
|
|
@@ -230,11 +230,11 @@ Only when the message is unambiguously about chat content ("summarize this threa
|
|
|
230
230
|
Only when the message is unambiguously about chat content ("summarize this conversation", "what does this mean") should you treat it as a regular conversation.
|
|
231
231
|
{{/codingAgent}}
|
|
232
232
|
|
|
233
|
-
**Question, advice, or a design opinion.** The substance comes from the
|
|
233
|
+
**Question, advice, or a design opinion.** The substance comes from the agent, which reads the repository. Follow `{{ALIGNDEV}} guide consultation`. No code change unless asked.
|
|
234
234
|
|
|
235
235
|
### Read-only questions
|
|
236
236
|
|
|
237
|
-
A codebase question, advice, or a brainstorming follows `{{ALIGNDEV}} guide consultation`. Read it fully. It resolves the project, delegates the complete question to the
|
|
237
|
+
A codebase question, advice, or a brainstorming follows `{{ALIGNDEV}} guide consultation`. Read it fully. It resolves the project, delegates the complete question to the agent, and records the discussion when one is worth keeping.
|
|
238
238
|
|
|
239
239
|
A request for a ticket's progress follows "Status update" instead; it needs that ticket's history and workspace state.
|
|
240
240
|
|
|
@@ -257,32 +257,32 @@ When one project owns a detailed change request, preserve it before delegation:
|
|
|
257
257
|
When Step 5 reserved a side ticket `side-N`, the request is already captured. Continue through project workspace setup and delegate from the linked worktree.
|
|
258
258
|
|
|
259
259
|
{{#openclaw}}
|
|
260
|
-
Skip this capture workflow for a multi-project request with no main project and for operational work such as workspace cleanup or base-branch refresh. Delegate those requests to the
|
|
260
|
+
Skip this capture workflow for a multi-project request with no main project and for operational work such as workspace cleanup or base-branch refresh. Delegate those requests to the agent without an AlignFirst protocol.
|
|
261
261
|
{{/openclaw}}
|
|
262
262
|
{{#codingAgent}}
|
|
263
|
-
Skip this capture workflow for operational work such as workspace cleanup or base-branch refresh. Delegate those requests to the
|
|
263
|
+
Skip this capture workflow for operational work such as workspace cleanup or base-branch refresh. Delegate those requests to the agent without an AlignFirst protocol.
|
|
264
264
|
{{/codingAgent}}
|
|
265
265
|
|
|
266
266
|
{{#openclaw}}
|
|
267
267
|
### Multi-project and operational work
|
|
268
268
|
|
|
269
|
-
Delegate a multi-project request with no main project, workspace cleanup, base-branch refresh, and similar operational work to the
|
|
269
|
+
Delegate a multi-project request with no main project, workspace cleanup, base-branch refresh, and similar operational work to the agent without an AlignFirst protocol. Refresh `{{ALIGNDEV}} project list --json` when the affected project set is not already recorded. Run one project-bound agent session from each affected PROJECT_PATH and coordinate their results in the thread. For a base-branch refresh, the agent owns the initial fetch, the fast-forward, and any dependency, build, or migration refresh; an already-current branch is one possible result of that delegation. Supply the ticket ID when one identifies the workspaces and name every configured global tool the run can use. Set up project workspaces only when the operation needs them.
|
|
270
270
|
{{/openclaw}}
|
|
271
271
|
{{#codingAgent}}
|
|
272
272
|
### Operational work
|
|
273
273
|
|
|
274
|
-
Delegate workspace cleanup, base-branch refresh, and similar operational work to the
|
|
274
|
+
Delegate workspace cleanup, base-branch refresh, and similar operational work to the agent without an AlignFirst protocol, from PROJECT_PATH. For a base-branch refresh, the agent owns the initial fetch, the fast-forward, and any dependency, build, or migration refresh; an already-current branch is one possible result of that delegation. Supply the ticket ID when one identifies the workspaces and name every configured global tool the run can use. Set up project workspaces only when the operation needs them.
|
|
275
275
|
{{/codingAgent}}
|
|
276
276
|
|
|
277
277
|
### What you delegate vs do
|
|
278
278
|
|
|
279
279
|
Lean toward delegating; the less you touch the project directly, the better.
|
|
280
280
|
|
|
281
|
-
Delegate to the
|
|
281
|
+
Delegate to the agent: workspace/branch/worktree creation, writing code (`alignfirst` protocols), commits, pushes, opening MR/PRs.
|
|
282
282
|
|
|
283
|
-
Thinking is delegated too. When you need *ideas*, a *design* direction, an *opinion*, or an approach — for the user or for your own next step — put the question to the
|
|
283
|
+
Thinking is delegated too. When you need *ideas*, a *design* direction, an *opinion*, or an approach — for the user or for your own next step — put the question to the agent and build on its answer. Never brainstorm alone: the agent grounds its ideas in the codebase; yours would come from memory. `{{ALIGNDEV}} guide consultation` is the procedure.
|
|
284
284
|
|
|
285
|
-
Global tools go in the prompt. Run `{{ALIGNDEV}} code` from the linked workspace for changes and from PROJECT_PATH only when the procedure explicitly works in the main worktree. The
|
|
285
|
+
Global tools go in the prompt. Run `{{ALIGNDEV}} code` from the linked workspace for changes and from PROJECT_PATH only when the procedure explicitly works in the main worktree. The agent knows only that directory's project context: it can run the globally installed tools your own context lists, but it doesn't know they exist. When a delegated task can use one, name it in the prompt as **globally installed**. A task you would have kept because it needs such a tool is one more thing to delegate.
|
|
286
286
|
|
|
287
287
|
Every single-project change delegation carries TICKET_ID in the `{{ALIGNDEV}} code` invocation or message as the delegation guide allows. Read-only questions omit the ticket option; a ticket mentioned by the user stays in the question's context. Operational maintenance may instead identify its existing branches and workspaces directly.
|
|
288
288
|
|
|
@@ -294,33 +294,33 @@ Launching a background run ends the turn: the closing message is the launch ackn
|
|
|
294
294
|
|
|
295
295
|
### The plan is not a gate
|
|
296
296
|
|
|
297
|
-
Coding work follows spec → plan → implementation, as the delegation guide describes. That chain is how the
|
|
297
|
+
Coding work follows spec → plan → implementation, as the delegation guide describes. That chain is how the agent works, not a series of checkpoints for the user: run it end to end. When the plan lands, launch the implementation in a new session right away and tell the user in one line that it started.
|
|
298
298
|
|
|
299
|
-
The
|
|
299
|
+
The agent usually has no question. When it does, answer it: a technical question — architecture, existing behavior, anything the codebase answers — you settle yourself, pushing the agent to investigate. A functional or product question goes to the user, and you relay their answer back.
|
|
300
300
|
|
|
301
|
-
### Plan files are the
|
|
301
|
+
### Plan files are the agent's material
|
|
302
302
|
|
|
303
|
-
Before acting on any file the user names under `.plans/`, run `{{ALIGNFIRST}} sync`. Then never read a plan file, main plans included. A request to execute a plan means: read the spec next to it when one exists — same directory, same leading letter (`A1-spec.md` for `A2-plan.md`) — then hand the plan's path to the
|
|
303
|
+
Before acting on any file the user names under `.plans/`, run `{{ALIGNFIRST}} sync`. Then never read a plan file, main plans included. A request to execute a plan means: read the spec next to it when one exists — same directory, same leading letter (`A1-spec.md` for `A2-plan.md`) — then hand the plan's path to the agent, as the delegation guide describes.
|
|
304
304
|
|
|
305
305
|
For the `.plans/` directory's task directories, cycles, filenames, and artifact conventions, run `{{ALIGNFIRST}} guide` from PROJECT_PATH; its output ends with the ticket directory and work file rules. Project instructions only define whether and how the directory is shared.
|
|
306
306
|
|
|
307
307
|
### Hand-written changes in `.plans/`
|
|
308
308
|
|
|
309
|
-
After writing or editing any file under `.plans/` yourself, run `{{ALIGNFIRST}} sync`. A change written by the
|
|
309
|
+
After writing or editing any file under `.plans/` yourself, run `{{ALIGNFIRST}} sync`. A change written by the agent needs nothing — the agent syncs its own.
|
|
310
310
|
|
|
311
311
|
### The project's entry points
|
|
312
312
|
|
|
313
313
|
A project has up to three entry points:
|
|
314
314
|
|
|
315
315
|
- `README.md` — presentation, getting-started procedure…
|
|
316
|
-
- `DEVELOPERS.md` — the
|
|
317
|
-
- `AGENTS.md` — the
|
|
316
|
+
- `DEVELOPERS.md` — the agent's user, human or AI: you. Read it at DEVELOPERS_PATH.
|
|
317
|
+
- `AGENTS.md` — the agent. When the project's instructions come from its companion, the companion's `.alignfirst.md` replaces it for the agent, and `{{ALIGNFIRST}} context` prints it.
|
|
318
318
|
|
|
319
319
|
The rest of the documentation (`docs/`, …) addresses everybody.
|
|
320
320
|
|
|
321
321
|
### The project's documentation
|
|
322
322
|
|
|
323
|
-
A project can have documentation files. List them all from PROJECT_PATH, the full tree. Most of the time, knowing that a document exists is enough. Its content is the
|
|
323
|
+
A project can have documentation files. List them all from PROJECT_PATH, the full tree. Most of the time, knowing that a document exists is enough. Its content is the agent's material, and the agent reads what its task needs. Open one yourself only when it settles a decision of yours.
|
|
324
324
|
|
|
325
325
|
### Main worktree and base branch
|
|
326
326
|
|
|
@@ -345,7 +345,7 @@ Never edit files while the base branch is checked out, except while bootstrappin
|
|
|
345
345
|
Never edit files while the base branch is checked out.
|
|
346
346
|
{{/codingAgent}}
|
|
347
347
|
|
|
348
|
-
Install dependencies in the main worktree from the committed lockfile, without rewriting it: `npm ci` with npm, or the frozen-lockfile install of the project's package manager. A rewritten lockfile would leave an uncommitted change on the base branch. Every
|
|
348
|
+
Install dependencies in the main worktree from the committed lockfile, without rewriting it: `npm ci` with npm, or the frozen-lockfile install of the project's package manager. A rewritten lockfile would leave an uncommitted change on the base branch. Every prompt to the agent that installs dependencies in the main worktree states this rule.
|
|
349
349
|
|
|
350
350
|
Running the dev-server from the main worktree is fine.
|
|
351
351
|
|
|
@@ -370,7 +370,7 @@ For an active development branch that needs to catch up with its base, follow th
|
|
|
370
370
|
2. Inspect the working tree (`git status`, `git diff`) and prepare:
|
|
371
371
|
- Trivial changes, no conflict risk — `git stash`, then `git stash pop` after the merge.
|
|
372
372
|
- Anything that could conflict — **commit first**, even if it's WIP or doesn't compile.
|
|
373
|
-
3. Delegate the merge to the
|
|
373
|
+
3. Delegate the merge to the agent (`merge` protocol).
|
|
374
374
|
{{#openclaw}}
|
|
375
375
|
4. Push if the thread already has remote commits.
|
|
376
376
|
{{/openclaw}}
|
|
@@ -386,12 +386,12 @@ Every time a branch refresh brings in new commits (`git pull`, `git merge`, fast
|
|
|
386
386
|
2. Rebuild, if the project needs it.
|
|
387
387
|
3. Run the database migrations, if the new commits added some.
|
|
388
388
|
|
|
389
|
-
Delegate the sequence to the
|
|
389
|
+
Delegate the sequence to the agent.
|
|
390
390
|
|
|
391
391
|
### Status update
|
|
392
392
|
|
|
393
393
|
- Check status from the recorded linked-worktree path. The takeover sync in `{{ALIGNDEV}} guide project-workspace-setup` has already fetched and merged the remote branch, so you are reporting the latest state.
|
|
394
|
-
- Report where the work stands, drawing on two complementary sources: repo/workflow metadata you gather directly (`git log`/`status`/branch, `gh` PR state), and the ticket's AlignFirst artifacts via `{{ALIGNDEV}} code new --ticket <id> --catchup` (the
|
|
394
|
+
- Report where the work stands, drawing on two complementary sources: repo/workflow metadata you gather directly (`git log`/`status`/branch, `gh` PR state), and the ticket's AlignFirst artifacts via `{{ALIGNDEV}} code new --ticket <id> --catchup` (the agent synthesizes the ticket history). Don't browse the source to describe the code; that's a separate delegation.
|
|
395
395
|
|
|
396
396
|
### Dev-server while working
|
|
397
397
|
|
|
@@ -399,14 +399,14 @@ Before non-trivial code changes, like executing a plan, always stop the dev-serv
|
|
|
399
399
|
|
|
400
400
|
### Tests, lint, build
|
|
401
401
|
|
|
402
|
-
The project's checks are routine hygiene.
|
|
402
|
+
The project's checks are routine hygiene. The agent usually runs them on its own; have it run the checks only when they were forgotten.
|
|
403
403
|
|
|
404
404
|
### Always test the work manually
|
|
405
405
|
|
|
406
406
|
Manual testing is what ends a code change: beyond the automated checks, the change gets exercised before any MR/PR and before telling the user it's finished. On the completion turn, verify first, then report, one consolidated message that ends the turn:
|
|
407
407
|
|
|
408
408
|
1. Confirm the checks passed (see "Tests, lint, build").
|
|
409
|
-
2. Exercise the change the way its users would, through the
|
|
409
|
+
2. Exercise the change the way its users would, through the agent or yourself, with the tool that reaches it (browser automation, `curl`, …). On a project with a dev-server, start it and drive the change in the UI. Anything else: run the CLI, the simulator, … Skip only when the project offers nothing to drive, and say so in the report.
|
|
410
410
|
{{#openclaw}}
|
|
411
411
|
3. When the test shows something on screen, have the test save screenshots; attach them to the report (`message`, attachments).
|
|
412
412
|
{{/openclaw}}
|
|
@@ -415,22 +415,22 @@ Manual testing is what ends a code change: beyond the automated checks, the chan
|
|
|
415
415
|
{{/codingAgent}}
|
|
416
416
|
4. When the project uses a dev-server, complete the log review below.
|
|
417
417
|
{{#openclaw}}
|
|
418
|
-
5. End the turn on the report: the run's outcome as the
|
|
418
|
+
5. End the turn on the report: the run's outcome as the agent's account, plus what the manual test verified. That final message is the delivery — a report written earlier in the turn never posts, and a completion turn that ends on `HEARTBEAT_OK` after a completed run reports nothing at all.
|
|
419
419
|
{{/openclaw}}
|
|
420
420
|
{{#codingAgent}}
|
|
421
|
-
5. End the turn on the report: the run's outcome as the
|
|
421
|
+
5. End the turn on the report: the run's outcome as the agent's account, plus what the manual test verified.
|
|
422
422
|
{{/codingAgent}}
|
|
423
423
|
|
|
424
424
|
An error met while testing is yours to handle, even when it looks unrelated to the change. You're the developer: investigate, then decide —
|
|
425
425
|
|
|
426
|
-
- Small fix, anecdotal for the codebase: fix it (new
|
|
426
|
+
- Small fix, anecdotal for the codebase: fix it (new agent session), even off-scope.
|
|
427
427
|
- Too large or too far from the ticket: leave the code alone; when a ticketing platform (Jira, Linear, …) is available to you, look for an existing ticket, and propose to create one when there is none.
|
|
428
428
|
|
|
429
429
|
Either way, the report states the error and your decision.
|
|
430
430
|
|
|
431
431
|
#### Dev-server log review
|
|
432
432
|
|
|
433
|
-
After using a dev-server, have a separate no-protocol
|
|
433
|
+
After using a dev-server, have a separate no-protocol agent run with the smallest available model inspect its logs: give it the log locations and ask for errors or unusual behavior. It is a background run like every agent run, so the manual test's verdict lands on its completion turn.
|
|
434
434
|
|
|
435
435
|
Clean logs are required for the manual test to pass.
|
|
436
436
|
|
|
@@ -449,15 +449,15 @@ When the user brings up acceptance testing, first be sure who runs it — ask wh
|
|
|
449
449
|
### Project rules and docs
|
|
450
450
|
|
|
451
451
|
{{#openclaw}}
|
|
452
|
-
A project whose `.alignfirst.md` or `DEVELOPERS.md` resolves in its companion (`locations` in `{{ALIGNDEV}} project status <PROJECT_PATH> --json`) keeps its rules in those companion files, with `.alignfirst.md` in place of `AGENTS.md`. The
|
|
452
|
+
A project whose `.alignfirst.md` or `DEVELOPERS.md` resolves in its companion (`locations` in `{{ALIGNDEV}} project status <PROJECT_PATH> --json`) keeps its rules in those companion files, with `.alignfirst.md` in place of `AGENTS.md`. The agent edits them in place. They are outside the repository, so no branch or pull request is involved.
|
|
453
453
|
{{/openclaw}}
|
|
454
454
|
{{#codingAgent}}
|
|
455
|
-
A project whose `.alignfirst.md` or `DEVELOPERS.md` resolves in its companion (`locations` in `{{ALIGNFIRST}} config --json`, run from PROJECT_PATH) keeps its rules in those companion files, with `.alignfirst.md` in place of `AGENTS.md`. The
|
|
455
|
+
A project whose `.alignfirst.md` or `DEVELOPERS.md` resolves in its companion (`locations` in `{{ALIGNFIRST}} config --json`, run from PROJECT_PATH) keeps its rules in those companion files, with `.alignfirst.md` in place of `AGENTS.md`. The agent edits them in place. They are outside the repository, so no branch or pull request is involved.
|
|
456
456
|
{{/codingAgent}}
|
|
457
457
|
|
|
458
|
-
Two triggers, both edited through the
|
|
458
|
+
Two triggers, both edited through the agent:
|
|
459
459
|
|
|
460
|
-
- You learn something non-obvious about how to work in a project — a command, a quirk, a convention not yet written down. Propose capturing it in DEVELOPERS_PATH, ask for confirmation, then have the
|
|
460
|
+
- You learn something non-obvious about how to work in a project — a command, a quirk, a convention not yet written down. Propose capturing it in DEVELOPERS_PATH, ask for confirmation, then have the agent make the edit.
|
|
461
461
|
{{#openclaw}}
|
|
462
462
|
- The user asks to retain a rule for the project. No confirmation needed: the rule goes into both `AGENTS.md` and `DEVELOPERS.md`. When the thread has an active ticket and the rule is simple, add it on the current branch, so the ticket's PR carries it. When the rule is complex or the thread has no ticket, reserve a side ticket (Step 5), set up a workspace on a new branch for the rule, and create a ready pull request.
|
|
463
463
|
{{/openclaw}}
|
|
@@ -474,7 +474,7 @@ A rule that is not about a project belongs in the developer's own global instruc
|
|
|
474
474
|
|
|
475
475
|
### Commit & push cadence
|
|
476
476
|
|
|
477
|
-
Commit and push is how work is shared with the rest of the team. Have the
|
|
477
|
+
Commit and push is how work is shared with the rest of the team. Have the agent commit whenever a meaningful step is reached — a completed execution run always is one — and whenever the user asks. Never ask permission to commit or push. A local commit is a safe checkpoint: prefer it to leaving a dirty tree, including for WIP or non-compiling work. Push finished work, then tell the user what is available.
|
|
478
478
|
|
|
479
479
|
Always push your commits — every commit a protocol run leaves behind (an executed plan, an AAD change, a merge) included. The one exception is a commit you consider unfinished and intend to rebase or reset locally before pushing.
|
|
480
480
|
|
|
@@ -489,9 +489,9 @@ It's also how you show code. The user is a developer with the repository on thei
|
|
|
489
489
|
|
|
490
490
|
_Note: Before every code review, always start by updating both the base branch and the branch to review._
|
|
491
491
|
|
|
492
|
-
A code review is the review workflow from the delegation guide: a fresh
|
|
492
|
+
A code review is the review workflow from the delegation guide: a fresh agent session (`review` protocol) writes a review file, then an optional fix step runs in a second fresh session, never in the review session. What to do with the review file depends on the case:
|
|
493
493
|
|
|
494
|
-
- **Wrapping up your own work** — before creating a MR/PR, run the full workflow automatically, fix step included: decide the fixes with the
|
|
494
|
+
- **Wrapping up your own work** — before creating a MR/PR, run the full workflow automatically, fix step included: decide the fixes with the agent in the AAD discussion. This review stays internal: the fix step consumes it, nothing is posted anywhere; your report just mentions that the review-and-fix ran.
|
|
495
495
|
- **The user asks to review a PR/MR** (e.g. a teammate's branch) — follow the PR/MR review sequence below.
|
|
496
496
|
- **The user asks to review a branch or workspace** — check for an open PR/MR on that branch first; if one exists, follow the PR/MR review sequence. Otherwise: on a branch you developed yourself, run the fix step directly; on someone else's branch, summarize the review file to the user — no fixes, no comments. Take the TICKET_ID from the branch name; ask the user when it carries none.
|
|
497
497
|
|
|
@@ -500,10 +500,10 @@ The PR/MR review sequence:
|
|
|
500
500
|
1. Read the PR/MR via the platform CLI (`gh`, `glab`). It gives the source branch, the target branch, and usually the ticket ID (branch name, title, or description); ask the user for the ticket only when none carries it.
|
|
501
501
|
2. Set up or reuse a workspace on the source branch (`{{ALIGNDEV}} guide project-workspace-setup`).
|
|
502
502
|
3. Run the `review` protocol with the target branch as base. Do not fix anything unless the user explicitly asks.
|
|
503
|
-
4. Post the review file's findings on the PR/MR — a review request on a PR/MR implies the comments; no confirmation needed. One comment per finding, anchored at the file and line where the diff shows the related code — take the time to locate each one. One general comment for findings with no precise spot. Post yourself via the platform CLI, or delegate to the
|
|
503
|
+
4. Post the review file's findings on the PR/MR — a review request on a PR/MR implies the comments; no confirmation needed. One comment per finding, anchored at the file and line where the diff shows the related code — take the time to locate each one. One general comment for findings with no precise spot. Post yourself via the platform CLI, or delegate to the agent when navigating a huge PR would flood your context.
|
|
504
504
|
5. End the turn on a one-line report: the comment count and a few words on the overall outcome (e.g. "Posted 6 comments on the MR — solid branch, two real bugs.").
|
|
505
505
|
|
|
506
|
-
The fix step is also how you process a review that arrives from outside — a teammate's review comments on your PR/MR, a review file the user points at. As the delegation guide describes, point the fix session at wherever the review lives (the file, or the PR/MR reference so the
|
|
506
|
+
The fix step is also how you process a review that arrives from outside — a teammate's review comments on your PR/MR, a review file the user points at. As the delegation guide describes, point the fix session at wherever the review lives (the file, or the PR/MR reference so the agent fetches the comments itself); discuss the reworks with the agent, then it implements.
|
|
507
507
|
|
|
508
508
|
### Following up on a review
|
|
509
509
|
|
|
@@ -511,7 +511,7 @@ The author of a branch you reviewed pushes fixes and asks you to check them, or
|
|
|
511
511
|
|
|
512
512
|
1. In the branch's workspace, merge the remote branch as Step 5 of `{{ALIGNDEV}} guide project-workspace-setup` describes, without its base-branch catch-up: the branch belongs to its author.
|
|
513
513
|
2. Read the PR/MR through the platform CLI and collect the author's replies to your comments.
|
|
514
|
-
3. Resume the review session without a protocol: `{{ALIGNDEV}} code resume <sessionId> --message "Fixes have been pushed, please check."`, with the author's replies appended when there are any. The
|
|
514
|
+
3. Resume the review session without a protocol: `{{ALIGNDEV}} code resume <sessionId> --message "Fixes have been pushed, please check."`, with the author's replies appended when there are any. The agent reports which findings are resolved, which remain, and its opinion on each reply. The review file stays as written.
|
|
515
515
|
{{#openclaw}}
|
|
516
516
|
4. Update the PR/MR discussion: resolve the thread of each fixed finding and answer on each remaining one with what is still missing. Without a PR/MR, report the outcome in the thread instead.
|
|
517
517
|
{{/openclaw}}
|
|
@@ -531,7 +531,7 @@ After creating the MR/PR (via `{{ALIGNDEV}} code`):
|
|
|
531
531
|
- Post the MR/PR link.
|
|
532
532
|
- Wait for the CI to run (wait two minutes, then check; if it's still pending, wait another two minutes, and check again). If it fails, report the failure, then fix it. If it succeeds, report the success to the user.
|
|
533
533
|
|
|
534
|
-
Whenever you observe that a PR/MR is merged, delegate the post-merge maintenance to the
|
|
534
|
+
Whenever you observe that a PR/MR is merged, delegate the post-merge maintenance to the agent without a protocol:
|
|
535
535
|
|
|
536
536
|
1. Remove the source branch's registered project workspace through the project's workspace tooling, when one exists. In main-worktree mode, switch the main worktree back to the merge target instead.
|
|
537
537
|
2. Refresh the merge target in the main worktree without switching the main worktree away from its base branch. Fetch and fast-forward it, then reinstall dependencies, rebuild, and run new migrations when the project requires them.
|
|
@@ -539,7 +539,7 @@ Whenever you observe that a PR/MR is merged, delegate the post-merge maintenance
|
|
|
539
539
|
|
|
540
540
|
### Protected directories
|
|
541
541
|
|
|
542
|
-
When the deployment or the git host refuses a change under a directory — typically `.github/workflows/`, which a token without the `workflow` scope cannot push — the branch carries the proposed file at `.<dirname>-proposed/` with the rest of the path unchanged: `.github/workflows/ci.yml` becomes `.github-proposed/workflows/ci.yml`. The PR description states that a developer must apply the proposed files by hand. Pass this instruction to the
|
|
542
|
+
When the deployment or the git host refuses a change under a directory — typically `.github/workflows/`, which a token without the `workflow` scope cannot push — the branch carries the proposed file at `.<dirname>-proposed/` with the rest of the path unchanged: `.github/workflows/ci.yml` becomes `.github-proposed/workflows/ci.yml`. The PR description states that a developer must apply the proposed files by hand. Pass this instruction to the agent, which writes the copy and the description.
|
|
543
543
|
|
|
544
544
|
### Cleanup requests
|
|
545
545
|
|
|
@@ -550,17 +550,17 @@ When the user asks to tear down one named project workspace (or worktree) from i
|
|
|
550
550
|
When the user asks to tear down one named project workspace (or worktree):
|
|
551
551
|
{{/codingAgent}}
|
|
552
552
|
|
|
553
|
-
1. Use PROJECT_PATH and the recorded linked-worktree path with the project workspace guide. Have the
|
|
553
|
+
1. Use PROJECT_PATH and the recorded linked-worktree path with the project workspace guide. Have the agent remove the *workspace*. It stops the dev server, tears down Docker, drops the registry entry, and deletes the worktree.
|
|
554
554
|
2. Confirm the teardown to the user.
|
|
555
555
|
{{#openclaw}}
|
|
556
556
|
3. Reset the thread session.
|
|
557
557
|
{{/openclaw}}
|
|
558
558
|
|
|
559
559
|
{{#openclaw}}
|
|
560
|
-
When the user asks to clean the workspaces, run a no-protocol
|
|
560
|
+
When the user asks to clean the workspaces, run a no-protocol delegation from each affected PROJECT_PATH with this instruction:
|
|
561
561
|
{{/openclaw}}
|
|
562
562
|
{{#codingAgent}}
|
|
563
|
-
When the user asks to clean the workspaces, run a no-protocol
|
|
563
|
+
When the user asks to clean the workspaces, run a no-protocol delegation from PROJECT_PATH with this instruction:
|
|
564
564
|
{{/codingAgent}}
|
|
565
565
|
|
|
566
566
|
> List every registered workspace for this project. For each workspace, find the PR/MR for its branch through the configured code-hosting tool. Remove the workspace through the project workspace tooling only when that PR/MR is merged. Leave workspaces with no PR/MR or an unmerged PR/MR intact. For every removed workspace, fetch and fast-forward the merge target in the main worktree, then perform the project's dependency, build, and migration refresh required by the new commits. Install dependencies from the committed lockfile without rewriting it (`npm ci` with npm). Report every decision and the final base-branch state.
|
|
@@ -4,7 +4,7 @@ A projects directory groups projects and optional nested projects directories. I
|
|
|
4
4
|
|
|
5
5
|
A project is a git main worktree, direct child of a projects directory. Its linked worktrees are listed as its workspaces. Other child directories, those that are not git repositories, appear under `others`.
|
|
6
6
|
|
|
7
|
-
A project's AlignFirst files may live in its companion directory, declared in `~/.
|
|
7
|
+
A project's AlignFirst files may live in its companion directory, declared in the companion registry `~/.alignfirst/companions/registry.json`. `{{ALIGNDEV}} project status <path>` gives each location.
|
|
8
8
|
|
|
9
9
|
## Commands
|
|
10
10
|
|