---
title: "2026-09-17 Split Factory into stacked PRs"
description: "Framework PR 404 now contains only the package; histo app is stacked draft PR 406."
image: "https://docs.virdx.dev/img/virdx-social-card.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.virdx.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# 2026-09-17 Split Factory into stacked PRs

## Work Done

At the user's request, split the published combined Factory PR into:

- [mono #404](https://github.com/virdx/mono/pull/404): framework package and its root
  inventory entry only. Branch `feat/factory-framework-histo`, commit fefad76f,
  base main. Worktree `~/work/worktrees/mono/factory-framework`.
- [mono #406](https://github.com/virdx/mono/pull/406): draft histo consumer app and
  its root inventory entry only. Branch `feat/factory-histo`, commit ff48f394,
  base `feat/factory-framework-histo`. Original worktree
  `~/work/worktrees/mono/factory-framework-histo` now checks out this app branch.

Reordered framework before app; force-pushed #404 with an explicit old-OID lease.
The final stacked committed tree is byte-for-byte identical to original combined
commit 5e2c876f (tree 43accf33b65abddbd67c5a51dbccfa6a77b42bdf).
Verified GitHub file lists and draft/base metadata. No behavior changed or tests
reintroduced. Both PR descriptions explain the stack and validation boundaries.

## Pitfalls

An uncommitted framework pyproject.toml edit was present in the original worktree.
It was preserved byte-for-byte and left uncommitted; it is not in either PR.
Cherry-picking the app after moving the root framework inventory row caused a
cleanly merged duplicate row. Exact tree comparison caught it; the duplicate was
removed before pushing. Main advanced meanwhile, so use merge-base/three-dot
comparisons when inspecting PR scope, not a two-dot comparison with latest main.

## Improvements

Review/merge #404 first, then rebase and retarget draft #406 onto main. Keep current
worktree/branch mapping explicit: framework edits belong on the base, app edits on
the draft. Do not accidentally include the preserved local manifest edit when
committing unrelated app work.

Source: https://docs.virdx.dev/knowledge/inbox/2026-09-17-histo-factory-stacked-prs/index.mdx
