Staging Engine — one Commit-Scope per commit
Classify diffs, enforce one staging category, split/stash mixed indexes.
What you will learn
- Classify
- Enforce one scope
- Split mixed indexes
Prerequisites
Surface
| MCP | staging_classify · staging_validate · staging_diff · staging_enforce · staging_split · staging_stash |
|---|
What this feature does
Staging turns a dirty tree into atomic Commit-Scope units (`function-create`, `single-change`, `module-wire`, `milestone-close`, …). One scope per SHA — no Gate-override for mixed batches.
How to call it
Call these MCP tools through your AGS / tower-gov host — staging_classify, staging_validate, staging_diff, staging_enforce, staging_split, staging_stash.. Prefer scan/get before validate/diff, and enforce only when the change set is ready.
- staging_classify { includeUnstaged: true }
- Pick one scope
- staging_stash others if needed
- staging_enforce → commit
{
"commitScope": "function-create",
"message": "status/checkpoint(auth): add refresh\n\nCommit-Scope: function-create\n…"
}Classify first
Always classify before writing Commit-Scope into the message.
{ "includeUnstaged": true }What success looks like
staging_enforce ok for declared scope
classify agrees with message
Common failure modes
Message scope ≠ staged paths
Docs+code mixed illegally
Ignoring staging_diff graph drift