Symptom
`step-08c-hollow-success-guard` fails with "Hollow success detected. Task description contains action keywords but step-08 produced 0 file changes." even when the implementation step (step-08) made a real commit before step-08b ran.
Reproduced on Simard issue #1167 → PR #1168 — commit `5c238ad feat(stewardship): autonomous failure → issue → backlog loop` actually contains 16 files / +1722 / -6 (substantial new `src/stewardship/` module, PRD update, docs). The guard nonetheless reports zero file changes and aborts the workflow.
Root cause hypothesis
The guard is comparing working-tree dirty state, not the diff against the branch base. By step-08c the agent has already committed everything and the working tree is clean → guard sees zero uncommitted changes and rules it hollow. The check should compare `git diff main..HEAD --name-only | wc -l` (or the equivalent against the workflow's recorded base ref) rather than `git status`.
Impact
Workflow false-fails after a successful, substantive implementation. Operator must manually open the PR even though the work product is correct. This makes the stewardship validation loop (filing issues from workflow failures) noisier than it should be.
Suggested fix
In `amplifier-bundle/recipes/default-workflow.yaml` step-08c-hollow-success-guard, replace any `git status --porcelain | wc -l` with:
```bash
CHANGED=$(git diff --name-only "${BASE_REF:-main}"..HEAD | wc -l)
```
so committed changes still count.
Affected version
amplihack 0.7.0 (upstream HEAD 7510652), recipe-runner-rs 0.3.5, bundle synced from main.
Symptom
`step-08c-hollow-success-guard` fails with "Hollow success detected. Task description contains action keywords but step-08 produced 0 file changes." even when the implementation step (step-08) made a real commit before step-08b ran.
Reproduced on Simard issue #1167 → PR #1168 — commit `5c238ad feat(stewardship): autonomous failure → issue → backlog loop` actually contains 16 files / +1722 / -6 (substantial new `src/stewardship/` module, PRD update, docs). The guard nonetheless reports zero file changes and aborts the workflow.
Root cause hypothesis
The guard is comparing working-tree dirty state, not the diff against the branch base. By step-08c the agent has already committed everything and the working tree is clean → guard sees zero uncommitted changes and rules it hollow. The check should compare `git diff main..HEAD --name-only | wc -l` (or the equivalent against the workflow's recorded base ref) rather than `git status`.
Impact
Workflow false-fails after a successful, substantive implementation. Operator must manually open the PR even though the work product is correct. This makes the stewardship validation loop (filing issues from workflow failures) noisier than it should be.
Suggested fix
In `amplifier-bundle/recipes/default-workflow.yaml` step-08c-hollow-success-guard, replace any `git status --porcelain | wc -l` with:
```bash
CHANGED=$(git diff --name-only "${BASE_REF:-main}"..HEAD | wc -l)
```
so committed changes still count.
Affected version
amplihack 0.7.0 (upstream HEAD 7510652), recipe-runner-rs 0.3.5, bundle synced from main.