What Git handles
Git is the backbone of the product tree. Use it for all of the following:Branching product alternatives
Create a branch to explore a different scope, actor, or product approach without affecting the main product truth. Merge if it is accepted; close the branch if it is not.
Reviewing primitive edits
Open a pull request when a primitive changes. Reviewers see exactly which fields changed and can comment on specific lines — the same workflow as a code review.
Merging accepted product truth
A merge into the main branch means the team has accepted the change as product truth. Merges are the authoritative record of decisions.
Forking for experiments
Fork the tree to explore a radically different product direction or to run a spike. Forks can be merged back, used as references, or discarded.
Comparing implementation plans
Use
git diff between branches to compare two milestone plans or two versions of an intent side by side.Auditable decision history
Every accepted primitive edit lives in Git history with author, timestamp, and message. You can reconstruct the product at any point in time.
What the app layer adds
The Ready Room app layers workflow on top of the Git-backed tree. It does not replace Git; it interprets the tree and manages the Git operations for teams that want a UI.
Your tree is valid without the app. If you prefer to use Git directly, every workflow in this guide works with standard Git commands.
Branch conventions
Use feature branches for product experiments and decisions in progress. Merge into the main branch only when a change is accepted product truth.What NOT to commit to Git
Local cache is not product truth and must never be committed to the product tree repository. Add a.gitignore entry for your local cache directory to prevent accidental commits:
When local cache becomes product truth
Local cache is ephemeral by design. When a conversation, agent run, or scratch session produces something durable, it does not go directly into Git. Instead, the app or product agent promotes it into the right primitive type:
The promotion step is the moment of review. Only reviewed, accepted content enters the committed tree.
Sensitive and bulky material
The committed product tree stores references to sensitive or bulky content — not the content itself.
Small sanitized samples are allowed when they are intentionally product fixtures — for example, a 10-row JSON file that represents realistic input data for an acceptance test. These should be explicitly marked
privacy: sanitized_fixture in the artifact manifest.
PR review as product review
Treat primitive edits in a pull request the same way you treat code changes. The diff is the product record.Because primitive ids are stable and paths are refactorable, a rename or reorganization commit produces a near-zero-content diff. This makes structural housekeeping easy to review and keeps meaningful product changes distinct in the log.