Duende Builder feature guide

Portfolio Wave 2

Delivery-system and product-enablement evidence, measured results, and the next concurrency decision

Status: implemented and merged; reclassified as a portfolio execution report, not a coherent product feature

Date: 2026-07-12

Document owner: Kalen Howell Sr.

Guide review state: source, technical, decision, and visual review completed; owner policy decisions remain open

Baseline: RH Scheduler v9.346 and Portfolio Wave 2 through 45f7ef7

Audience: product owners, operations reviewers, developers, and readers who do not already know the RH workflow or the delivery system

One-Minute Explanation

Portfolio Wave 2 tested a practical question: can Duende Builder move more small, useful slices at once without weakening the controls needed for a manufacturing product?

The answer is that one controller can coordinate three workstreams safely. Nine execution nodes were planned across product authority, performance and recovery, and delivery control. They were activated in stages, not as nine simultaneous worktrees. Each slice had a narrow outcome, owned paths, focused tests, two independent exact-SHA reviews, CI, an ordered merge, and normal cleanup.

The product stream clarified what Daily Plan, Mix Schedule, and Customer Summary data means today. The evidence stream built fictional workloads and measured real v9.346 scheduling and recovery paths. The delivery stream added the dependency controller, fail-closed review queue, and deterministic metrics contract.

All nine nodes merged. The workflow prevented stale reviews from being treated as current, caught a Linux Chrome cleanup race before merge, and left no Wave 2 feature branch or worktree behind.

The next concurrency decision is deliberately conservative: hold Wave 3 at three active implementation lanes. The run did not record every lifecycle event required for an honest review-wait and active-time calculation. The next delivery slice will add that instrumentation; a later measured wave can then support or reject expansion to five.

The central boundary: this portfolio increases the ability to produce reviewable evidence. It does not make a schedule official, release a plan to the floor, approve a production workload target, add authentication, or replace the browser-local prototype architecture.

Engineering Delivery Problem And Value

This section describes a software-delivery and product-enablement problem. It does not describe a new manufacturing feature or claim that nine product features were delivered.

The problem before Wave 2

The three-slice pilot proved that isolated worktrees and ordered review could deliver several narrow changes safely. It did not answer the next set of questions:

  • Can one plan express dependencies across several product workstreams?
  • Can the team keep implementation from outrunning review and merge capacity?
  • Can authority questions be separated from changes that are safe without owner policy?
  • Can later architecture work start from measured behavior instead of assumptions about workload and storage?
  • Can the team decide whether to add concurrency from evidence rather than worktree count?

The single-file scheduler makes these questions important. Git branches can separate files, but they cannot prevent two changes from assigning different meanings to the same schedule state. More worktrees without one dependency and authority view would increase activity while making integration less safe.

The value delivered

Workstream What changed Practical value
Product authority, A1-A3 Daily Plan, mix batches, and Customer Summary fields have source-bound current meanings and future gates Future product work can separate commitment, forecast, plan, advisory calculation, completion, and shipment without guessing
Performance and recovery, B1-B3 Fictional deterministic fixtures drive real scheduler, browser-render, save, reload, export, and restore evidence Modularization and storage design can start from repeatable behavior and known limits rather than invented targets
Delivery scale, C1-C3 One portfolio controller validates dependencies, conflicts, WIP, review readiness, metrics inputs, and cleanup Several narrow slices can advance together while merge authority and quality gates remain centralized

This does not prove that manufacturing output increased. The gain is a better development system for producing trustworthy feature evidence and a clearer map of product decisions still owned by operations leaders. Only separately accepted user capabilities count as delivered product features.

Business Workflow

Activity diagram showing bounded product outcomes moving through staged work, exact review, integrated evidence, and a hold decision when lifecycle evidence is incomplete

How to read this view: Blue steps are the delivered portfolio workflow. Amber marks a decision or evidence boundary. The workflow ends with a capacity decision; it never crosses into manufacturing plan release.

The root controller begins with an approved outcome and one portfolio manifest. It activates only slices whose dependencies, write ownership, semantic locks, base SHA, and capacity are safe. A worker develops one result in an isolated worktree. Two reviewers and CI then inspect the same exact head SHA. The root merges one PR at a time, integrates current main into any remaining branch, invalidates stale approvals, and removes only verified merged topology.

Kalen owns the portfolio intent, policy boundaries, merge authority, and the next capacity decision. Workers own bounded implementation. Reviewers own independent findings, not edits. Mike and Justin remain the business owners for release/current-plan and related operating decisions; their availability does not block source characterization or fictional calibration work.

People, Inputs, Actions, And Outputs

Part Portfolio meaning
People Kalen as owner; root controller; bounded implementers; two independent reviewers; future operations reviewers
Inputs Approved ExecPlan, current main SHA, one portfolio manifest, v9.346 source, synthetic fixtures, exact write sets
Actions Validate, activate, test first, review exact SHA, remediate, re-review, run CI, merge serially, clean normally
Outputs Nine merged slices, authority contracts, benchmark receipts, delivery tools, closeout evidence, this guide, Wave 3 decision
Handoffs Product-policy questions go to owners; implementation evidence goes through PR review; measured flow evidence informs the next wave

How The Nine Nodes Fit Together

Dependency diagram grouping the nine nodes into foundation, Stage 1, and Stage 2 with active caps of one, three, and five

How to read this view: Arrows mean “must finish before this node becomes eligible.” A, B, and C are workstreams, not simultaneous lane counts. The cap grew from one to three and then at most five; nine active implementation lanes were never permitted.

Node Stage and dependency Delivered result Main evidence
C1 Foundation Portfolio DAG, WIP, conflict, and guarded activation controller portfolio-wave.test.mjs and portfolio-wave-delivery.md
A1 Stage 1, after C1 Daily Plan rule placement and authority contract daily-plan-rule-placement-v9346.md
B1 Stage 1, after C1 Small, medium, and stress fictional calibration workloads 2026-07-12-synthetic-workload-profile.md
C2 Stage 1, after C1 Fail-closed review and merge queue portfolio-review-queue.md
A2 Stage 2, after A1 Mix batch sources, writers, meanings, and gates mix-batch-authority-v9346.md
A3 Stage 2, after A1 Customer commitment, forecast, completion, and shipment meanings customer-summary-authority-v9346.md
B2 Stage 2, after B1 Real-browser scheduler and selected-render calibration baseline scheduler-performance-baseline-v9346.md
B3 Stage 2, after B1 Save, reload, export, restore, and integrity baseline storage-recovery-baseline-v9346.md
C3 Stage 2, after C2 Strict portfolio closeout input and metric calculation contract portfolio-metrics-contract.md

What The Product Authority Work Means

The A stream did not change the scheduler. It turned mixed behavior into a source-backed map that future features must preserve or deliberately revise.

Daily Plan

The Daily Plan contract separates output projection from labor, tank, and planning rules. It identifies where current rules are read or recomputed and which future decisions are required before the screen can represent released authority.

Mix Schedule

The mix batch contract identifies every current batch source and writer, including editable browser state. It distinguishes generated planning data from later edits and identifies the gates needed before any batch set becomes official floor instruction.

Customer Summary

The Customer Summary contract separates customer commitment, current forecast, completion, and shipment actuals. Those ideas can appear beside one another in a UI while still having different owners and trust levels. The contract keeps release and customer-communication policy explicitly open.

Together, the three contracts make a future released-plan projection easier to design without silently treating every displayed date or status as approved.

What The Performance And Recovery Work Means

B1 created deterministic small, medium, and stress fixtures. Every fixture is fictional engineering calibration data. The labels describe relative test sizes inside this repository; they do not represent accepted RH workload, capacity, concurrency, or service-level targets.

B2 measured actual v9.346 functions in a bounded Chrome session: runTankAndPourPlan, generateDayPlan, renderWeeklyPlan, and renderOptimizerToday. It pinned a planning date and one in-memory order, verified exact fixture and runtime namespace identities, and required repeated output parity. The stress browser path exceeded local storage quota, so the receipt records a structured failure and no success timing.

B3 exercised the real save, reload, backup, and restore chain for all three fixtures. It verified exact namespace reconciliation and preserved candidate history as nonreleased. A dropped-write injection showed an important limit: v9.346 can report restore success after a partial write. The benchmark detects and rejects that mismatch, but the product restore itself is not transactional and has no rollback.

These baselines are engineering evidence. They help define later storage and modularization slices; they do not certify production readiness.

Safety And Review Behavior

Activity diagram showing validation, test-first implementation, two exact-SHA reviews, CI, remediation, serialized merge, and normal cleanup

How to read this view: Every amber branch stops or repeats work. A PR cannot move forward merely because an earlier SHA passed. If code, evidence, or the base changes, both review and CI must run again.

The controller fails before mutation when it sees an unknown dependency, cycle, unsafe ref, overlapping owned path, overlapping semantic lock, dirty or mismatched topology, or WIP overflow. The review queue blocks stale final review, head/CI mismatch, unresolved actionable threads, unmet dependencies, and review-ready overflow.

Wave 2 exercised these controls in real work. B1 and A2 integrated current main before final review. B2 changed after its first CI run, then integrated newly merged B3. Each changed head received two fresh reviews and a new successful CI run. No force-push or force-delete was used.

The B2 failure is a useful example. Its browser assertions passed on Linux, but Chrome had not fully released its temporary profile directory when Node removed it. The PR failed rather than hiding the cleanup race. The harness added a finite five-retry, 100-millisecond-delay removal policy, regenerated the source-bound receipt, passed the integrated performance suite, and was re-reviewed at the new final SHA.

System And Authority Boundaries

The portfolio contains two systems of work:

  • The product runtime is still the single-file v9.346 browser scheduler. A1-A3 describe it; they do not modify it.
  • The delivery system is the repository controller, worktrees, tests, local reviewers, GitHub PRs, CI, metrics contract, and cleanup routine.

The delivery controller can decide whether a code slice is safe to activate or merge. It cannot decide that a manufacturing plan is released. A benchmark can show that a function behaved consistently under one fixture. It cannot approve an operational target. A source contract can identify a shipment field. It cannot decide who may communicate a commitment to a customer.

The following remain outside Wave 2:

  • plan release, approval, current-plan selection, or floor acknowledgement;
  • authentication, authorization, shared persistence, or production migration;
  • use of private RH production data;
  • production performance targets or workload representativeness;
  • broad refactoring or splitting of the v9.346 prototype;
  • more than five active Wave 2 lanes or any nine-lane model.

Technical Implementation Map

Practical concept Implementation Proof
Portfolio dependency and WIP control scripts/portfolio-wave.mjs, scripts/lib/portfolio-wave.mjs tests/orchestration/portfolio-wave.test.mjs
Exact-SHA review queue scripts/portfolio-review-queue.mjs, scripts/lib/portfolio-review-queue.mjs tests/orchestration/portfolio-review-queue.test.mjs
Strict flow/safety metric contract scripts/portfolio-metrics.mjs, scripts/lib/portfolio-metrics.mjs tests/orchestration/portfolio-metrics.test.mjs
Daily Plan authority docs/architecture/daily-plan-rule-placement-v9346.md tests/scheduler/daily-plan-rule-placement.test.mjs
Mix batch authority docs/architecture/mix-batch-authority-v9346.md tests/scheduler/mix-batch-authority.test.mjs
Customer Summary authority docs/architecture/customer-summary-authority-v9346.md tests/scheduler/customer-summary-authority.test.mjs
Synthetic calibration workloads scripts/generate-synthetic-scheduler-workloads.mjs and tests/fixtures/performance/ tests/performance/synthetic-workload.test.mjs
Scheduler browser benchmark scripts/benchmark-scheduler-v9346.mjs tests/performance/scheduler-benchmark.test.mjs
Storage recovery benchmark scripts/benchmark-storage-recovery-v9346.mjs tests/performance/storage-recovery-benchmark.test.mjs

The canonical execution contract is docs/plans/2026-07-12-portfolio-wave-2-execplan.md. The source-backed outcome and final decision are in docs/agentic-engineering-framework/07-evidence/portfolio-wave-2-closeout.md.

Data, Security, And Operations

The committed fixtures contain no customer or staff identities. Receipts use counts, hashes, bounded error text, tool versions, and portable source paths. They do not include credentials, tokens, private URLs, absolute machine paths, or RH production records.

Browser state remains local to the prototype. Candidate history remains candidate-only and nonreleased across recovery checks. The benchmarks never promote restored data to current or released authority.

Operationally, the root controller is the only actor allowed to create PRs, merge, update shared closeout files, and remove worktrees. Cleanup begins with a preview or exact topology check and refuses ambiguous state. The original user-owned dirty checkout was kept separate and untouched throughout Wave 2.

Actual Results And The Wave 3 Decision

GitHub records show nine Wave 2 PRs merged during a 159.45-minute PR-visible window. Median PR-to-merge time was 2.333 minutes and mean time was 3.556 minutes. Eight PRs passed their first recorded CI attempt; B2 failed once, received a bounded correction, and then passed at its final reconciled SHA. There were zero open Wave 2 PRs and zero force operations after integration.

Those facts describe integration after most implementation and local review work had already happened. They do not measure full cycle time or reviewer wait. The C3 contract also requires exact readiness, branch creation, activation, local review, remediation, head-change, capacity, and cleanup events. Wave 2 did not persist all of them. A JSON receipt could be made to validate only by treating CI as human review and configured WIP as observed WIP. That would be false evidence, so no proxy is approved.

Decision diagram showing GitHub, repository, topology, and local lifecycle evidence feeding the C3 contract, with incomplete evidence leading to a three-lane hold

How to read this view: Blue boxes are evidence sources. Green boxes are deterministic validation and calculation. Amber boxes are capacity decisions. The local lifecycle source is incomplete, so the honest path leads to “hold at three,” not an inferred expansion.

The Wave 3 decision is therefore to keep three active implementation lanes and two review-ready items as the operating limits. The immediate next tooling slice will record lifecycle events automatically and update the chronology to represent pre-PR local review. After one measured three-lane wave, Kalen can reconsider allowing up to five. A separate six-lane experiment would need its own approved plan. Nine lanes remain forbidden.

Decisions, Risks, And Open Questions

Item Current state Why it matters
Wave 3 implementation cap Hold at three Review and active-time evidence is incomplete
Review-ready cap Keep at two Implementation must not outrun independent review
Global prototype lease Keep one The accepted scheduler remains one shared HTML application
Lifecycle instrumentation Next delivery slice C3 cannot make an honest expansion calculation without it
B2 stress storage failure Known calibration result Later storage design needs a bounded strategy before production-scale claims
B3 restore transactionality Known limitation Reconciliation detects partial recovery; current restore has no rollback
Release/current-plan policy Open owner decision Characterization must not be mistaken for approval
Representative workload and targets Open owner decision Synthetic profile names are not operational commitments

Verification Evidence

  • Every node has a focused contract test and final evidence or runbook.
  • Two independent reviewers approved every implementation PR at its final SHA.
  • CI passed the exact final SHA for PRs #15 through #23.
  • The integrated scheduler, performance, artifact, command-center, and orchestration test selections are rerun in the closeout PR.
  • PlantUML and standalone HTML sources are regenerated and checked in the same closeout PR.
  • Privacy, local-path, Markdown, whitespace, branch, PR, and worktree checks are part of final closeout.

Glossary

  • Active lane: one implementation slice currently allowed to change its declared paths. A worktree alone is not an active lane.
  • Candidate: an optimizer result under review, not an approved or released production plan.
  • C3 contract: the strict JSON input and deterministic calculation rules for portfolio flow and safety metrics.
  • Exact-SHA review: review tied to one immutable Git commit. Any later head change invalidates the approval.
  • Fictional engineering calibration: deterministic test data used to compare runs; it is not customer data or a production workload claim.
  • Semantic lock: a named business or architecture concept that only one active slice may own, even when file paths differ.
  • Workstream: a group of related outcomes. Wave 2 used product authority, performance and recovery, and delivery scale.
  • Worktree: an isolated Git checkout for one bounded slice.

Source Trail

  • docs/plans/2026-07-12-portfolio-wave-2-execplan.md
  • docs/plans/2026-07-12-portfolio-wave-2-critical-review.md
  • docs/agentic-engineering-framework/07-evidence/portfolio-wave-2-closeout.md
  • docs/agentic-engineering-framework/07-evidence/portfolio-metrics-contract.md
  • docs/architecture/daily-plan-rule-placement-v9346.md
  • docs/architecture/mix-batch-authority-v9346.md
  • docs/architecture/customer-summary-authority-v9346.md
  • docs/architecture/research/2026-07-12-synthetic-workload-profile.md
  • docs/agentic-engineering-framework/07-evidence/scheduler-performance-baseline-v9346.md
  • docs/agentic-engineering-framework/07-evidence/storage-recovery-baseline-v9346.md
  • docs/runbooks/portfolio-wave-delivery.md
  • docs/runbooks/portfolio-review-queue.md
  • GitHub PRs #15 through #23

Maintenance Note

Markdown and PlantUML are canonical. The standalone HTML and SVG files are generated mirrors. Update this guide when lifecycle instrumentation changes the metrics evidence, when the Wave 3 capacity decision changes, or when a later feature changes any authority or recovery boundary described here.