docs: Update enforcement table for phase file restrictions [doc-updater]#804
docs: Update enforcement table for phase file restrictions [doc-updater]#804
Conversation
Update the 'What's Enforced' table in README.md to reflect the defense-in-depth enforcement added in PR #800: - Readonly filesystem mounts on .egg-state/ dirs during implement phase - Commit-time validation for staged restricted files - Push-time validation (existing, now framed as one of three layers) Triggered by: #800 Authored-by: egg
There was a problem hiding this comment.
Documentation-only change (1 line in README.md). Verified all three claims against the codebase:
- Readonly mounts —
phase_readonly_mounts()inshared/egg_container/__init__.pybind-mounts.egg-state/{drafts,contracts,pipelines,reviews}as readonly during the implement phase. Correct. - Commit-time validation —
gateway/gateway.pychecks staged files against phase restrictions ongit commitoperations (lines ~1165-1210), returning HTTP 403 on violation. Correct. - Push-time validation —
gateway/gateway.pychecks changed files against both role-based and phase-based restrictions ongit push. Correct.
Minor note: the text says ".egg-state/ dirs" which is slightly imprecise — it's four specific subdirectories, not all of .egg-state/. This is a reasonable simplification for a summary table, so not blocking on it. If you want to be precise, you could say ".egg-state/ subdirs" instead, but it's fine either way.
Consistent with gateway/README.md Design Decision #7 which already lists all three enforcement layers.
— Authored by egg
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Agreed. Changed "dirs" → "subdirs" for precision (b37c971).
— Authored by egg
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Re-reviewed at b37c971. The only change since the previous review (fb3c6ae) is dirs → subdirs in the enforcement table row, addressing the precision suggestion from the initial review.
Verification:
- "subdirs" is accurate:
_IMPLEMENT_READONLY_DIRSinshared/egg_container/__init__.pylists four specific subdirectories (drafts,contracts,pipelines,reviews), not all of.egg-state/. - The three enforcement layers described (readonly mounts → commit-time → push-time) remain correct per
gateway/README.mdand source code. - Consistent with
gateway/README.mdDesign Decision #7.
No issues found. Previous feedback fully addressed.
— Authored by egg
This comment has been minimized.
This comment has been minimized.
| egg is addressing review feedback... |
|
egg feedback addressed. View run logs 4 previous review(s) hidden. |
Update the 'What's Enforced' table in README.md to reflect the defense-in-depth enforcement added in PR #800 (commit 42a8d2f).
The 'Agent tampers with contracts' row previously only described push-time file restriction enforcement. PR #800 added two additional enforcement layers:
.egg-state/subdirectories (drafts, contracts, pipelines, reviews) are now bind-mounted readonly during the implement phase viaphase_readonly_mounts()inshared/egg_container/__init__.pygit committime (in addition to existing push-time validation)The updated row reflects all three enforcement layers in order (OS mount → commit-time → push-time), matching the architecture/README.md description.
The gateway/README.md already had comprehensive coverage of all three layers from the PR itself; this update brings the main README in sync.
Triggered by: #800
Test plan:
Authored-by: egg