fix(ai): correct stale role-hierarchy and file-listing claims
All checks were successful
Mirror to GitHub / mirror (push) Successful in 3s
All checks were successful
Mirror to GitHub / mirror (push) Successful in 3s
Codex review of the dual-agent handoff migration flagged factual errors carried over verbatim from the pre-migration CLAUDE.md. All claims verified against the live code before correction. PROJECT_CONTEXT.md — SaaS shape: - Role hierarchy was `super_admin > team_admin > engineer > viewer`, but `backend/app/core/permissions.py:4` and `frontend/src/hooks/usePermissions.ts:4` both define it as `super_admin > owner > engineer > viewer`. The `team_admin` concept exists separately as an orthogonal team-scoped gate (`require_team_admin`, `is_team_admin=True` + valid `team_id`), not a level in the primary hierarchy. - Dep list was missing `require_account_owner` and `require_team_admin`, both present in `backend/app/api/deps.py`. PROJECT_CONTEXT.md — directory tree: - `api/endpoints/` comment listed 11 routers; `api/router.py` actually registers 50+. Replaced with a summary that points at `router.py` as the source of truth instead of trying to maintain a freezing list. - `services/psa/` comment omitted `exceptions.py` and `ticket_context.py`, both present in the directory. CURRENT_TASK.md + TODO.md: - Replaced `<!-- EXAMPLE -->` placeholders with clearer empty-state sentinels so a resume agent sees "no real task yet" at a glance rather than placeholder acceptance criteria that look unresolved. SESSION_LOG.md updated with a follow-up bullet documenting this pass. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -1,23 +1,33 @@
|
||||
# CURRENT_TASK.md
|
||||
|
||||
<!-- EXAMPLE — replace on first real task -->
|
||||
|
||||
**Task:** One-sentence goal describing what this task accomplishes.
|
||||
**Task:** none — replace this file when starting the next real task.
|
||||
|
||||
**Status:** not-started
|
||||
|
||||
**Definition of Done:** n/a
|
||||
|
||||
**Assumptions:** n/a
|
||||
|
||||
**Out of scope:** n/a
|
||||
|
||||
---
|
||||
|
||||
<!-- When you start a real task, replace the block above with:
|
||||
|
||||
**Task:** One-sentence goal.
|
||||
|
||||
**Status:** not-started | in-progress | blocked | ready-for-review | complete
|
||||
|
||||
**Definition of Done:**
|
||||
- [ ] Testable criterion 1 (e.g., "endpoint returns 200 with expected payload shape")
|
||||
- [ ] Testable criterion 2 (e.g., "frontend displays new field without layout regression")
|
||||
- [ ] Testable criterion 1
|
||||
- [ ] Testable criterion 2
|
||||
- [ ] Tests added or updated
|
||||
- [ ] `npm run build` passes (frontend) / `pytest` passes (backend)
|
||||
|
||||
**Assumptions:**
|
||||
- What we're treating as given (e.g., "existing auth middleware handles this case")
|
||||
- Constraints inherited from surrounding work
|
||||
- What we're treating as given
|
||||
|
||||
**Out of scope:**
|
||||
- What this task explicitly does NOT cover (prevents scope creep across handoffs)
|
||||
- Adjacent work that belongs in a separate task
|
||||
- What this task explicitly does NOT cover
|
||||
|
||||
<!-- END EXAMPLE -->
|
||||
-->
|
||||
|
||||
Reference in New Issue
Block a user