@boopkit/cap-workflows 0.1.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/capability.json +20 -0
- package/package.json +18 -0
- package/skills/boop-architecture-audit-workflow/SKILL.md +199 -0
- package/skills/boop-design-handoff-workflow/SKILL.md +93 -0
- package/skills/boop-feature-dev-workflow/SKILL.md +404 -0
- package/skills/boop-issue-sweep-workflow/SKILL.md +176 -0
- package/skills/boop-knowledge-backfill/SKILL.md +19 -0
- package/skills/boop-light-dev-workflow/SKILL.md +104 -0
- package/skills/boop-refactor-dev-workflow/SKILL.md +111 -0
- package/skills/boop-test-audit-workflow/SKILL.md +152 -0
- package/skills/boop-website-dev-workflow/SKILL.md +195 -0
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: boop-website-dev-workflow
|
|
3
|
+
description: "When you are tasked with implementing website changes end-to-end (new pages, page rewrites, IA changes, content/CTA updates), follow this guidance."
|
|
4
|
+
metadata:
|
|
5
|
+
category: workflow
|
|
6
|
+
---
|
|
7
|
+
# Workflow for building website changes.
|
|
8
|
+
|
|
9
|
+
This is the **website sibling** of [`boop-feature-dev-workflow`](../boop-feature-dev-workflow/SKILL.md) — same step-by-step flow, same beads-issue structure, customized for marketing-site work (new pages, page rewrites, IA changes, content/CTA updates).
|
|
10
|
+
|
|
11
|
+
This workflow is **project-agnostic**. It names patterns of project artifacts (the driving spec, the brand reference docs, the audience-type marketing skill) rather than specific file paths. The Understand step (#1 below) is where you discover the specific artifacts that apply to *this* project and record them as breadcrumbs so the rest of the loop can pick them up.
|
|
12
|
+
|
|
13
|
+
## Relevant skills
|
|
14
|
+
|
|
15
|
+
### Project Management
|
|
16
|
+
- [When you need to plan work with beads](../../../cap-project-mgmt/skills/boop-project-mgmt-beads-planning/SKILL.md) — from project-mgmt
|
|
17
|
+
- [When you need to plan engineering work](../../../cap-project-mgmt/skills/boop-project-mgmt-engineering-planning/SKILL.md) — from project-mgmt
|
|
18
|
+
|
|
19
|
+
### Design
|
|
20
|
+
- [When you need to design a feature or system](../../../cap-product-design/skills/boop-product-design-engineering-design/SKILL.md) — from product-design
|
|
21
|
+
- [When you need to design web UIs](../../../cap-web/skills/boop-web-web-ui-design/SKILL.md) — from web (**primary design skill for this workflow**)
|
|
22
|
+
- [When you need to design controllers](../../../cap-services/skills/boop-services-controllers/SKILL.md) — from services (route handlers that render views)
|
|
23
|
+
|
|
24
|
+
### Coding
|
|
25
|
+
- [When you need to start working on a claimed issue](../../../cap-coding/skills/boop-coding-beads-flow/SKILL.md) — from coding
|
|
26
|
+
- [When you need to develop or modify code](../../../cap-coding/skills/boop-coding-development/SKILL.md) — from coding
|
|
27
|
+
- [When you need to commit code changes](../../../cap-coding/skills/boop-coding-commit-changes/SKILL.md) — from coding
|
|
28
|
+
- [When you need to review uncommitted code changes](../../../cap-coding/skills/boop-coding-review-changes/SKILL.md) — from coding
|
|
29
|
+
|
|
30
|
+
### Testing
|
|
31
|
+
- [When you need to write or run tests](../../../cap-testing/skills/boop-testing-testing/SKILL.md) — from testing
|
|
32
|
+
- [When you need to test Express web endpoints](../../../cap-testing/skills/boop-testing-testing-express-web/SKILL.md) — from testing
|
|
33
|
+
|
|
34
|
+
### Documentation
|
|
35
|
+
- [When you need to integrate knowledge into reference docs](../../../cap-product-design/skills/boop-product-design-reference-integration/SKILL.md) — from product-design
|
|
36
|
+
|
|
37
|
+
### Subject-matter marketing skills (discovered per project)
|
|
38
|
+
The project may ship an **audience-type marketing skill** carrying the universal copy patterns for whom it sells to — frameworks, default moves, forbidden patterns (e.g. a `b2b-marketing` skill when the project sells to businesses; consumer / marketplace / etc. variants exist for other audiences). boop does not bundle one; if the project provides it, the Understand step records its exact path. Use whichever matches the project's audience.
|
|
39
|
+
|
|
40
|
+
## Project structure
|
|
41
|
+
Most projects this workflow runs on organize documents into:
|
|
42
|
+
- `reference/` — *current state.* The project's brand reference doc, brand realization (site) doc, product / positioning refs, and any tenets live here. These are the **guardrails**.
|
|
43
|
+
- `specs/` — *future state.* The driving spec for the work, plus any companion plans (`{feature-name}-plan-findings.md`, `{feature-name}-plan.md`) generated by this workflow.
|
|
44
|
+
- `skills/` — instructions for specific tasks. Additional skills reside in `packages/cap-*/skills/`.
|
|
45
|
+
- `tools/` — command-line tools used to automate the workflow. Do not run these until instructed to do so.
|
|
46
|
+
|
|
47
|
+
The Understand step (#1) records the exact files in *this* project's `reference/` and `specs/` that ground the work.
|
|
48
|
+
|
|
49
|
+
### Where website content comes from
|
|
50
|
+
|
|
51
|
+
A website implementation task usually carries two layers of input:
|
|
52
|
+
|
|
53
|
+
- A **driving spec** in `specs/` — *future-state* intent. Defines which pages exist, what each page is *for* (its goal), the IA changes, and sometimes specific copy that has already been decided (a chosen hero line, an exact CTA label). The spec is the primary source of content **intent**.
|
|
54
|
+
- One or more **reference docs** in `reference/` — *current-state* guardrails. They do not usually carry page-level copy for new pages; they constrain how copy gets written: brand voice, audience model, tone modes, exclusions, settled positioning. Refs ground the spec and constrain slots the spec leaves underspecified — they are guardrails, not the canonical copy of new pages.
|
|
55
|
+
|
|
56
|
+
When a spec leaves a content slot underspecified (e.g. it states a goal but doesn't prescribe exact words), the implementer fills the gap using, in order:
|
|
57
|
+
|
|
58
|
+
1. The spec's stated goal for that slot.
|
|
59
|
+
2. The project's brand-voice and language constraints — read whichever ref doc carries them in this project (typically named in the Understand step's findings).
|
|
60
|
+
3. The tone mode the project's brand realization doc assigns to that page or surface.
|
|
61
|
+
4. The persona's buying motion and pain points named in the project's brand ref / audience model.
|
|
62
|
+
5. The **audience-type marketing skill** for this project, if it ships one (discovered in the Understand step). This skill carries the universal copy patterns for that audience type — frameworks, default moves, forbidden patterns. The project's brand ref carries project-specific patterns on top.
|
|
63
|
+
|
|
64
|
+
If a content situation cannot be resolved by 1–5 (the refs don't cover it; the marketing skill is silent or absent; the spec doesn't speak to it), **flag it as a ref-doc gap or a spec gap** rather than guessing silently. Either:
|
|
65
|
+
|
|
66
|
+
- Update the relevant ref doc in the same branch and proceed (small additions, e.g. a new *Do/Don't* row), or
|
|
67
|
+
- File a follow-up issue and pick a placeholder for the current page (larger additions, e.g. a new persona).
|
|
68
|
+
|
|
69
|
+
This protects the ref docs as durable guardrails and keeps the next page's implementer from re-deriving the same decision.
|
|
70
|
+
|
|
71
|
+
## Workflow
|
|
72
|
+
Prime directive: **Use beads issues for everything**. Beads has hierarchical issues (epics, features, tasks, sub-tasks, bugs). All steps of this website development workflow should be an issue, with appropriate dependencies and reference material (breadcrumbs, etc). We will use feature → task → sub-task for most work. If you find yourself doing work that is not in an issue, stop and create an issue for it.
|
|
73
|
+
|
|
74
|
+
**Flow overview.** The website work ships as a chain of issues, each one a separate task whose output is written somewhere the next task can find it:
|
|
75
|
+
|
|
76
|
+
> feature (parent) → understand → plan → decompose → implement → review → punch-list → closeout
|
|
77
|
+
|
|
78
|
+
The first issue is the feature parent; working it produces the next issue(s), and so on. `bd-loop` picks up each newly-ready issue and runs it until the chain is complete.
|
|
79
|
+
|
|
80
|
+
**The loop ends with the feature branch pushed for human review.** Merging, main-branch coordination, and branch deletion are out of scope for the loop. See step 6 (Closeout).
|
|
81
|
+
|
|
82
|
+
### First step:
|
|
83
|
+
1. **Create the feature issue**: Create a new feature issue in beads for the requested website work. This is the parent issue for all work tasks. Write a clear title and description that names the page(s) or IA change and links the driving spec (these are the 'breadcrumbs'). Ref-doc and marketing-skill identification happens in the Understand task (step 1 below); the feature issue does not need to enumerate them up front.
|
|
84
|
+
|
|
85
|
+
### Task construction:
|
|
86
|
+
Create tasks as child issues of the feature issue. The descriptions below are the content of the created issue — so don't *do* the work described in the issue description, this is just the content of the issue.
|
|
87
|
+
|
|
88
|
+
1. **Understand the work**: First task issue goal (don't *do* this work, this is the content of the task issue): Read the driving spec. Then **discover and record this project's guardrails**. For example:
|
|
89
|
+
- **Brand reference doc(s)** — read `reference/` and identify which file(s) define brand voice, language constraints, audience / personas, exclusions, and (if separate) the site-realization / tone-mode doc. Typical names include `brand.ref.md`, `branding-site.ref.md`, a tenets doc, and a product / positioning doc. Record the exact file paths.
|
|
90
|
+
- **Audience-type marketing skill** — based on whom the project sells to, identify the appropriate marketing skill if the project ships one. Record the exact skill path (or note that none exists).
|
|
91
|
+
- **Web design skill** — record the web UI / design skill the project uses (e.g. `boop-web-web-ui-design`).
|
|
92
|
+
|
|
93
|
+
Then, against the driving spec and those guardrails, identify:
|
|
94
|
+
- Which routes / controllers / views already exist for each affected page, and which need to be created. **For surfaces that may be scaffold-provided (auth, settings, account), check `node_modules/@boopkit/*/scaffold/` for existing views / controllers / routes before treating them as new work** — e.g. `cap-users` scaffolds login/signup views, an auth controller, and auth routes. Reuse or extend the scaffold surface rather than re-deriving it.
|
|
95
|
+
- For each affected page, **which content slots the spec already specifies** (hero line, CTA copy, page goal, IA placement) and **which slots the spec leaves underspecified** (sub-messaging, body copy, section headers, secondary calls-to-action). Underspecified slots will be filled at implementation time per *Where website content comes from* above.
|
|
96
|
+
- Which **tone mode** applies to each affected page (per whichever ref doc defines tone modes for this project).
|
|
97
|
+
- Which **personas / audience-model entries** the page is targeting (per the project's brand ref).
|
|
98
|
+
- Any pages explicitly marked **untouched** by the driving spec — do not touch these.
|
|
99
|
+
- Any retired pages that need their route + controller + view deleted (and what the spec prescribes for their replacement behavior — 404, redirect, or other).
|
|
100
|
+
- Any **ref-doc gaps** — content situations the page needs to address that the project's refs don't currently cover. Note them for resolution in the plan step.
|
|
101
|
+
|
|
102
|
+
If anything is unclear, ask for clarification rather than guessing.
|
|
103
|
+
|
|
104
|
+
**Findings handoff (critical):** The next task runs in a fresh session with zero context — anything not written to a discoverable file is lost. Write findings to `specs/{feature-name}-plan-findings.md` covering:
|
|
105
|
+
- **Guardrail registry** — the exact paths of the project's brand ref doc(s), realization / tone-mode doc, audience-type marketing skill (or "none"), and web design skill. These are the breadcrumbs the rest of the loop will carry forward.
|
|
106
|
+
- Spec understanding (what the driving spec says).
|
|
107
|
+
- List of affected routes / controllers / views and list of retired routes (with prescribed replacement behavior), noting which surfaces are scaffold-provided.
|
|
108
|
+
- Per-page content sourcing (what the spec specifies vs what's left to implementation judgment).
|
|
109
|
+
- Tone selection per page.
|
|
110
|
+
- Persona / audience targeting per page.
|
|
111
|
+
- Identified ref-doc gaps.
|
|
112
|
+
- Open questions and decisions / recommendations.
|
|
113
|
+
|
|
114
|
+
Reference this file as a breadcrumb in the "plan" task's issue description. The guardrail registry inside the findings file is what propagates the project's specific artifacts into all subsequent work tasks. A `bd close --reason` one-liner or short `--append-notes` summary is fine as a supplement, but the findings file is the primary handoff artifact — issue fields have length limits and aren't diff-friendly.
|
|
115
|
+
|
|
116
|
+
2. **Plan the work**: Next task (don't *do* this work, this is the content of the task issue): **Start by reading the findings** at `specs/{feature-name}-plan-findings.md` from the "understand" task (path is in this task's breadcrumbs; also check `bd show <predecessor-id>` notes). The findings include the guardrail registry (brand ref, realization doc, audience-type marketing skill, web design skill) — these are the breadcrumbs you will propagate into the implementation, review, and punch-list tasks below.
|
|
117
|
+
|
|
118
|
+
Then find or create the website implementation plan at `specs/{feature-name}-plan.md`. Follow the [engineering planning skill](../../../cap-project-mgmt/skills/boop-project-mgmt-engineering-planning/SKILL.md). The plan should enumerate, for each in-scope page:
|
|
119
|
+
- Route + controller + view file paths (existing or new; flag scaffold-provided surfaces).
|
|
120
|
+
- **Per-block content sourcing** — for each major content block, whether the copy comes verbatim from the spec, is paraphrased from the spec, or will be written at implementation time per the project's brand-voice ref grounded by the audience-type marketing skill.
|
|
121
|
+
- The **tone mode** that applies (per the project's realization doc).
|
|
122
|
+
- The **persona(s)** the page is speaking to (per the project's brand ref).
|
|
123
|
+
- Any partials or semantic CSS classes that already exist and can be reused (per the project's web design skill).
|
|
124
|
+
- Any new semantic CSS classes that will be introduced.
|
|
125
|
+
- Metadata (page title, OG image strategy, description sourced from the hero lede).
|
|
126
|
+
- **Ref-doc gap resolution** — for each gap identified in step 1, either (a) a small in-branch ref-doc edit to close the gap, or (b) a placeholder for the page with a follow-up issue.
|
|
127
|
+
- **Acceptance** — what "done" looks like for this page (rendered in the browser per the project's golden path, brand-voice-aligned, semantic HTML, working CTAs, no broken links).
|
|
128
|
+
|
|
129
|
+
When you decompose the plan into implementation sub-tasks (step 3), **include the guardrail registry as breadcrumbs in each sub-task**: the brand ref doc(s), the realization / tone-mode doc, the audience-type marketing skill, the web design skill, and the per-page tone / persona selections from the plan. Review the plan to ensure it fully covers the spec; create follow-up tasks for any gaps it can't resolve.
|
|
130
|
+
|
|
131
|
+
3. **Decompose the plan**: Next task (don't *do* this work, this is the content of the task issue): **Start by reading the website implementation plan** at `specs/{feature-name}-plan.md` (confirm path from this task's breadcrumbs). Break it down into a "do the work" task issue plus smaller sub-tasks following the [beads-planning skill](../../../cap-project-mgmt/skills/boop-project-mgmt-beads-planning/SKILL.md).
|
|
132
|
+
|
|
133
|
+
Sub-task granularity for website work is typically **page-level or surface-level**: one sub-task per new page, one per page rewrite, one per retired-route deletion, one for global-nav structure, etc. Shared concerns like semantic CSS extensions or new partials get their own sub-tasks and become blockers for the pages that depend on them.
|
|
134
|
+
|
|
135
|
+
**Propagate the guardrail registry into every sub-task as breadcrumbs** — brand ref doc(s), realization / tone-mode doc, audience-type marketing skill, web design skill — so the implementation agent does not have to re-discover them.
|
|
136
|
+
|
|
137
|
+
Create the feature branch `work/<feature-issue-id>` (e.g. `work/boop-arc.14`) — branch names MUST use the `work/` prefix + issue ID, never feature names like `home-page-refresh`. All sub-tasks work within this branch.
|
|
138
|
+
|
|
139
|
+
**Re-wire the Review dependency (critical):** Decompose only plans the work, it does not perform it. So Review (step 4) must depend on the "do the work" task, not on this Decompose task. If Review already exists with a Review→Decompose dep, fix it:
|
|
140
|
+
```
|
|
141
|
+
bd dep remove <review-task-id> <this-decompose-task-id>
|
|
142
|
+
bd dep add <review-task-id> <do-the-work-task-id>
|
|
143
|
+
```
|
|
144
|
+
If Review doesn't exist yet, create it now with the correct dep on the do-the-work task.
|
|
145
|
+
|
|
146
|
+
4. **Review the work done**: Next task (don't *do* this work, this is the content of the task issue). Depends on the "do the work" task from step 3 (step 3 is responsible for rewiring this if pre-created with the wrong dep). Review all changes **in the feature branch** `work/<feature-issue-id>` (confirm with `git branch` or breadcrumbs). Run `bd children <feature-issue-id>` to see what sub-tasks were created and closed for context. Pull the **guardrail registry** from the findings file (`specs/{feature-name}-plan-findings.md`) before reviewing — every review below is anchored against those project-specific guardrails. This task will:
|
|
147
|
+
- Perform a **code review and content review** of all changes in the feature branch. The content review checks that each affected page (1) implements the driving spec's stated intent for every page-level goal, (2) where the spec specifies exact copy, uses that copy verbatim, and (3) where the spec leaves a content slot to implementation judgment, the copy aligns with the project's brand-voice ref and the audience-type marketing skill (no audience-register drift, no forbidden patterns, no superlatives without evidence, no invented positioning that contradicts settled ref-doc content).
|
|
148
|
+
- Perform a **brand-voice review** against the project's brand ref doc — its voice / language constraints / do-don't / exclusions sections. Flag any drift from the project-specific rules.
|
|
149
|
+
- Perform a **marketing-copy review** against the audience-type marketing skill (if the project ships one) — its universal forbidden patterns (hype cadence, vague universals, unearned superlatives, wrong-audience register) and its quick self-check.
|
|
150
|
+
- Perform a **tone-mode review** — each page uses the tone mode named in the plan (per the project's realization doc's tone-mode assignments).
|
|
151
|
+
- Perform a **machine-readability / semantic-HTML review** — headings describe sections; meaningful prose is in the HTML rather than JS-injected; code samples are `<pre><code>`, not background images; copy-paste-safe snippets; plain URLs for the things that matter; OG / meta descriptions truthful (and ideally lifted from the hero lede).
|
|
152
|
+
- Perform a **browser validation** — start the dev server on a port confirmed free (`lsof -ti tcp:<port>` prints nothing when free), load each affected page, and confirm the golden path (page renders, primary CTA is wired correctly, internal links work, no console errors, no broken images, the project's theme is intact, no contrast regressions). Test the page narrow (mobile-ish) as well as wide. **If browser validation isn't possible in this environment, say so explicitly — do not claim success.** (Per project `CLAUDE.md` / `AGENTS.md` conventions where present — *for UI or frontend changes, start the dev server and use the feature in a browser before reporting the task as complete.*)
|
|
153
|
+
- **Stop the dev server this task started** before it closes (`lsof -ti tcp:<port> | xargs kill`), by port only. Never pattern-kill (`pkill -f <runner>` reaches every other worktree's server and the operator's own — this project runs several worktrees and loops at once). Never stop a server you did not start: if the port you wanted is already held, identify the holder's cwd via `lsof -a -d cwd -p <pid> -Fn` and reuse it only when the directory is this feature's worktree, else take the next free port.
|
|
154
|
+
- Perform an **IA review** — the top-nav structure matches the driving spec; retired routes return the spec's prescribed behavior (404, redirect, or other); any home-page cross-links the spec prescribes are present; the primary CTA destination exists and is reachable from every surface that the spec routes traffic from.
|
|
155
|
+
- Write the review to `labs/claude-runs/{feature-issue-id}-review-summary.md`, structured as: code findings, content findings, brand-voice findings, marketing-copy findings, tone-mode findings, semantic-HTML findings, browser findings, IA findings, and an overall punch-list.
|
|
156
|
+
- Append a **punch-list** of issues that must be addressed before merge. Punch-list items typically span categories: code (refactor, naming, controller cleanliness), content (drift from spec intent or from brand-grounded copy judgment), brand-voice (project-specific forbidden phrasing, wrong register), marketing-copy (universal forbidden patterns — hype cadence, vague universals, unearned proof), tone (wrong mode applied), semantic HTML (heading order, missing alt text, JS-injected content), browser (visual bugs, broken links, console errors, mobile breaks, contrast issues), and IA (wrong nav, missing cross-links, retired routes still live).
|
|
157
|
+
|
|
158
|
+
5. **Add a punch-list work task**: Create a 'punch list' task issue as a child of the feature issue. Its goal: turn each item in the punch-list from the review document into a sub-task issue under this punch-list task. **Propagate the guardrail registry into the punch-list task and its children** so the fixers operate against the same brand ref / marketing skill the implementation did.
|
|
159
|
+
|
|
160
|
+
**Hierarchy rule:** Create punch-list items with `--parent <punch-list-task-id>` so they are true hierarchical children: `bd create "..." --parent <punch-list-task-id> ...`. `bd dep add` creates sequencing only — it is not a substitute for `--parent`. Sequencing deps between siblings are fine to add after creation.
|
|
161
|
+
|
|
162
|
+
**Verify before closing the punch-list task:** Run `bd children <punch-list-task-id>` and confirm every item appears in the tree. Fix any missing item with `bd update <id> --parent <punch-list-task-id>` (remove conflicting deps first if needed). Only close once the tree is correct.
|
|
163
|
+
|
|
164
|
+
Punch-list sub-tasks of category "browser" or "content" should re-validate in the dev server after the fix, and each such sub-task stops the server it started before it closes, on the same terms as the browser validation in step 4. There is one sub-task per punch-list item, so deferring the stop to closeout leaves one stray watcher process per item. Sub-tasks of category "brand-voice" or "tone" should re-check against the project's brand ref doc. Sub-tasks of category "marketing-copy" should re-check against the audience-type marketing skill.
|
|
165
|
+
|
|
166
|
+
6. **Close out the website work**: After the punch-list is resolved and the website work is complete, create a closeout task as a child of the feature issue. The closeout task performs two activities:
|
|
167
|
+
|
|
168
|
+
**a. Archive the spec:**
|
|
169
|
+
- Move the completed driving spec from `specs/` to `specs/history/` (create the directory if it doesn't exist).
|
|
170
|
+
- If any aspects of the spec were NOT implemented (deferred, descoped, or punted), extract those into a new revised spec in `specs/` that captures just the remaining work. Reference the archived spec for full context.
|
|
171
|
+
- The archived spec should be the full original — do not edit or trim it.
|
|
172
|
+
- If the work was driven by a *content* spec layered on top of a still-open *IA* spec, archive only the content spec and leave the IA spec in place.
|
|
173
|
+
|
|
174
|
+
**b. Integrate into reference:**
|
|
175
|
+
- Follow the [reference integration skill](../../../cap-product-design/skills/boop-product-design-reference-integration/SKILL.md) to blend the new website knowledge into existing `reference/` pages.
|
|
176
|
+
- This is NOT "create a new page for the feature" — it's merging knowledge into the existing concept pages. The integration targets are the **guardrail registry** captured in the findings file:
|
|
177
|
+
- The project's brand realization / site doc — IA, page roster, retired-surfaces list, tone-mode assignments, any messaging tables (if rows changed).
|
|
178
|
+
- The project's brand ref doc — any voice / language drift discovered during implementation that warrants a new *Do/Don't* row, a new entry in *Language we avoid*, a new persona, etc.
|
|
179
|
+
- Any other project ref docs that surfaced gaps during the work.
|
|
180
|
+
- Update cross-links between affected reference pages.
|
|
181
|
+
- Remove or update any reference content that is now outdated (e.g. stale URLs, retired surfaces that the ref doc still names as live).
|
|
182
|
+
|
|
183
|
+
**c. Hand off — the loop ends at the feature branch:**
|
|
184
|
+
|
|
185
|
+
Terminal state: closeout commits pushed on `work/<feature-issue-id>`, beads synced, feature issue closed. A human reviews and (if approved) merges.
|
|
186
|
+
|
|
187
|
+
**Scope boundary:** Authority ends at the feature branch. The branch (local and remote) stays intact after closeout so the reviewer can inspect it — including a browser pass — and so it remains a revert anchor. Merging, pushing to `main`, and branch deletion belong to the human reviewer — partly because concurrent worktrees may have other `work/<id>` branches in flight that need out-of-band coordination.
|
|
188
|
+
|
|
189
|
+
**Final actions of the closeout task (in order):**
|
|
190
|
+
1. Commit the closeout edits (spec archive + reference updates) on the feature branch.
|
|
191
|
+
2. `git push` the feature branch to its own remote ref.
|
|
192
|
+
3. `bd dolt push` so beads state is synced.
|
|
193
|
+
4. `bd close <closeout-task-id>`.
|
|
194
|
+
5. `bd close <feature-issue-id>` (all child work is now done).
|
|
195
|
+
6. Stop. The loop will go idle on "No ready issues for prefix"; the next action belongs to the human reviewer.
|