Appearance
Recursive issue tree and coverage
Verified 2026-09-06 using native sub_issues endpoints through empty responses at every leaf, then issue bodies/comments and material cross-links. Native dependency endpoints for #63/#51/#52 are empty; the operative dependencies below come from issue text and verified code. No summarized issue count was used.
Exact counts
- #63 native hierarchy: 3 issues, 2 leaf issues, all OPEN. #51 and #52 each return an empty child array; neither currently contains additional body-defined child issues.
- Material backend dependency-family closure: 48 distinct issues including those 3; 45 outside the root hierarchy. It contains 13 native parents and 35 native leaves (5 CLOSED, 43 OPEN overall).
- #29 body-links #68 as a child, although its native API only lists #30. Both are included. Dependency cycles do not create additional unique issues.
- Historical backend #2/#23 and external frontend #29/scraper #8 are recorded separately below. They do not inflate the root or core closure count.
The requested deeper work exists as dependencies and sibling MVP families in current GitHub, rather than extra native descendants of #51/#52. The machine-readable snapshot preserves every node, state, child edge and leaf dependency for future agents.
text
#63 OPEN MVP: Operational & Financial Analytics
├── #51 OPEN ANALYTICS-001 — leaf
└── #52 OPEN ANALYTICS-002 — leafComplete material family hierarchy
Every indented issue below is a leaf; every leaf endpoint was queried, including CLOSED leaves. body marks a non-native edge. Titles/status/gaps for all 48 nodes follow this hierarchy.
text
#64 OPEN MVP: CPM, RPM, Earnings & Budget
├── #53 OPEN EARN-001: Persist Attributable Earning and Spend Deltas
├── #54 OPEN EARN-002: Enforce Atomic Campaign Budget Depletion
├── #60 CLOSED RATE-001: Add Precise Explicit CPM/RPM Configuration
└── #61 CLOSED RATE-002: Resolve and Version Highest-Applicable RPM
#44 OPEN MVP: Campaign Funding & Financial Tracking
├── #31 OPEN FUND-001: Persist Campaign Invoice, Payment, and Funding Records
├── #32 OPEN FUND-002: Create Whop Invoices for Campaign Funding
├── #33 OPEN FUND-003: Reconcile Whop Invoice Payment Idempotently
└── #34 OPEN FUND-004: Gate Campaign Activation on Verified Funding
#45 OPEN MVP: Campaign Lifecycle
└── #35 OPEN CAMP-001: Define and Enforce Atomic Campaign Lifecycle Transitions
#46 OPEN MVP: Continuous Submission Tracking
├── #24 CLOSED TRACK-001: Enforce Continuous Tracking Lifecycle and Expiry Policy
└── #36 OPEN TRACK-002: Harden and Productionize Scrape Worker Recovery
#47 OPEN MVP: Metric History
└── #37 OPEN METRIC-001: Preserve Normalized Observations and Correction Provenance
#65 OPEN MVP: Creator Payouts via Whop
├── #56 OPEN PAY-001: Add Whop Transfer Destination and Operation Records
├── #57 OPEN PAY-002: Execute Whop Payouts with Semantic Idempotency
├── #58 OPEN PAY-003: Reconcile Uncertain and Failed Whop Transfers
└── #59 OPEN PAY-004: Finalize Only Unpaid Eligible Earning Deltas
#66 OPEN MVP: Fraud Detection & Payout Holds
└── #55 OPEN FRAUD-001: Add Durable Payout-Hold Fraud Review Workflow
#3 OPEN MVP: Campaign-Specific Clipper Groups
├── #26 OPEN GROUP-001: Add Campaign-Group RPM Configuration
├── #27 OPEN GROUP-002: Apply Deterministic Group/Member Rate Resolution
└── #28 OPEN GROUP-003: Add Campaign-Relative Group Analytics
#49 OPEN MVP: Submission Review
├── #41 OPEN REV-001: Persist and Expose Moderation History
├── #42 OPEN REV-002: Make Moderation Transitions Atomic and Idempotent
└── #43 OPEN REV-003: Bound and Optimize Review Queue Queries
#29 OPEN MVP: Reliable Audit Trail
├── #30 CLOSED AUDIT-001: Establish Canonical AuditEvent Infrastructure
└── #68 OPEN AUDIT-002: Integrate Feature Audit Producers and Contextual Views [body]
#48 OPEN MVP: Custom Staff Roles & Permissions
├── #38 OPEN RBAC-001: Add Custom Staff Roles and Permission Assignments
├── #39 OPEN RBAC-002: Enforce Granular Backend Permissions on Sensitive Actions
└── #40 OPEN RBAC-003: Add Safe Staff and Role Administration UI
#62 OPEN MVP: Private Creator Access
└── #50 OPEN ACCESS-001: Enforce Private Creator Campaign Access
#67 CLOSED MVP: Revocable Sponsor Campaign Analytics Link [cross-link]
#75 OPEN feat(rbac): finalize pending business-action mappings [cross-link]
#76 OPEN fix(audit): accept CUIDs in Clipper Group membership events [cross-link]
#77 OPEN fix(auth): replace impossible Whop owner access-level check [cross-link]Node status, dependencies, verified implementation
Dependencies here are explicit leaf prerequisites, not every incidental mention. Parent rows defer to children and readiness. #61 lists #26 for real group candidates; its generic resolver is already implemented. RBAC dependencies mean coordinate existing protection, not block analytics fixtures or invent mappings.
| Issue | GitHub | Depends on / children | Verified implementation at baseline |
|---|---|---|---|
| #3 MVP: Campaign-Specific Clipper Groups | OPEN | Children: #26, #27, #28 | Partial: campaign-owned groups/intervals exist; rates/analytics missing; #76 blocks valid membership audits. |
| #24 TRACK-001: Enforce Continuous Tracking Lifecycle and Expiry Policy | CLOSED | No explicit leaf prerequisite | Implemented: #71 creation-based status-independent lifecycle; deploy/worker operation separately unverified. |
| #26 GROUP-001: Add Campaign-Group RPM Configuration | OPEN | #60, #39 | Missing group RPM/version storage and administration. |
| #27 GROUP-002: Apply Deterministic Group/Member Rate Resolution | OPEN | #26, #61 | Partial: #61 resolver accepts group candidates; persisted candidate loader and consumer integration missing. |
| #28 GROUP-003: Add Campaign-Relative Group Analytics | OPEN | #53, #51 | Missing campaign-relative group/member performance; A09/A16. |
| #29 MVP: Reliable Audit Trail | OPEN | Children: #30, #68 | Partial: canonical store landed; feature producers/contextual views remain. |
| #30 AUDIT-001: Establish Canonical AuditEvent Infrastructure | CLOSED | No explicit leaf prerequisite | Implemented foundation: canonical store/targets/recorder/query; no legacy audit models. |
| #31 FUND-001: Persist Campaign Invoice, Payment, and Funding Records | OPEN | #60 | Missing invoice/payment/funding models; campaign budget remains a string. |
| #32 FUND-002: Create Whop Invoices for Campaign Funding | OPEN | #31, #39, #30 | Missing campaign invoice creation flow. |
| #33 FUND-003: Reconcile Whop Invoice Payment Idempotently | OPEN | #31, #30 | Missing verified invoice reconciliation/funding credits; chat webhook exists. |
| #34 FUND-004: Gate Campaign Activation on Verified Funding | OPEN | #33, #39, #35 | Missing verified funding launch gate; coordinate #35 shared contract. |
| #35 CAMP-001: Define and Enforce Atomic Campaign Lifecycle Transitions | OPEN | #34, #39 | Partial lifecycle flags/actions; atomic state/funding rules incomplete. |
| #36 TRACK-002: Harden and Productionize Scrape Worker Recovery | OPEN | #24 | Partial: three executors/claims/CAS; renewal, retry taxonomy, production recovery unverified. |
| #37 METRIC-001: Preserve Normalized Observations and Correction Provenance | OPEN | #36 | Partial: snapshots/shares and tracking replay guard; source identity/time/corrections incomplete. |
| #38 RBAC-001: Add Custom Staff Roles and Permission Assignments | OPEN | #30 | Partial / superseded architecture: hybrid capability grants landed #73, not the older proposed custom-role design; RBAC owner reconciles ticket. |
| #39 RBAC-002: Enforce Granular Backend Permissions on Sensitive Actions | OPEN | #38 | Partial: existing business guards preserved; new mappings/attachment #75 and owner defect #77 open. |
| #40 RBAC-003: Add Safe Staff and Role Administration UI | OPEN | #38, #39 | Partial: staff capability panel landed frontend #27; browser acceptance frontend #29 open; do not build old role UI. |
| #41 REV-001: Persist and Expose Moderation History | OPEN | #30 | Partial: best-effort canonical status audit exists; complete committed decision history/actor DTO absent. |
| #42 REV-002: Make Moderation Transitions Atomic and Idempotent | OPEN | #54, #30 | Incomplete: read/check/update/audit remain separate; no transition CAS; preserve independent tracking. |
| #43 REV-003: Bound and Optimize Review Queue Queries | OPEN | No explicit leaf prerequisite | Partial: default pagination exists; views/earnings sorts load all candidates, search absent. |
| #44 MVP: Campaign Funding & Financial Tracking | OPEN | Children: #31, #32, #33, #34 | Missing authoritative funding family; display budget is not paid funding. |
| #45 MVP: Campaign Lifecycle | OPEN | Children: #35 | Partial lifecycle family; see #35/#34. |
| #46 MVP: Continuous Submission Tracking | OPEN | Children: #24, #36 | Partial family: #24 landed; #36 remains. Parent approved-only wording stale. |
| #47 MVP: Metric History | OPEN | Children: #37 | Partial observation family; see #37. |
| #48 MVP: Custom Staff Roles & Permissions | OPEN | Children: #38, #39, #40 | Partial hybrid RBAC foundation; broader original issue text needs RBAC-owner reconciliation. |
| #49 MVP: Submission Review | OPEN | Children: #41, #42, #43 | Partial review family; queue/actions exist, #41/#42/#43 remain. |
| #50 ACCESS-001: Enforce Private Creator Campaign Access | OPEN | #38 | Missing main-dev private campaign read enforcement; public mount verified. No unrelated worktree treated as landed. |
| #51 ANALYTICS-001: Correct Creator and Campaign Financial Analytics | OPEN | #53, #59 | Incomplete: legacy/current models mixed; duplicate-add claim not reproduced. A01/A03–A06/A11/A12/A17. |
| #52 ANALYTICS-002: Complete Required Staff, Group, and Campaign Analytics | OPEN | #51, #28, #41, #55 | Incomplete: performance foundations/report exist; operational/group/financial integration absent. A01/A02/A06–A10/A13–A17. |
| #53 EARN-001: Persist Attributable Earning and Spend Deltas | OPEN | #31, #61, #37 | Missing attributable earning/spend journals and economic source identity. |
| #54 EARN-002: Enforce Atomic Campaign Budget Depletion | OPEN | #60, #31 | Partial mechanism only: tracking campaign lock exists; no shared funded depletion invariant across writers. |
| #55 FRAUD-001: Add Durable Payout-Hold Fraud Review Workflow | OPEN | #37, #30 | Missing durable fraud holds/finality/recovery; badge UI only; seven days awaits owner. |
| #56 PAY-001: Add Whop Transfer Destination and Operation Records | OPEN | #53 | Missing verified payout destination and semantic provider-operation records. |
| #57 PAY-002: Execute Whop Payouts with Semantic Idempotency | OPEN | #56, #59, #39 | Missing Whop dispatcher; legacy rails only and read/update send claim. |
| #58 PAY-003: Reconcile Uncertain and Failed Whop Transfers | OPEN | #57, #30 | Missing Whop uncertainty/reconciliation inbox and durable recovery state. |
| #59 PAY-004: Finalize Only Unpaid Eligible Earning Deltas | OPEN | #53, #55, #56 | Missing entry-level reservation/release/finalization; counters advance before send. |
| #60 RATE-001: Add Precise Explicit CPM/RPM Configuration | CLOSED | No explicit leaf prerequisite | Implemented #70 exact rate configuration/backfill; not full analytics/ledger correctness. |
| #61 RATE-002: Resolve and Version Highest-Applicable RPM | CLOSED | #60, #26 | Implemented #70 immutable highest-value resolver/provenance; #26/#27 integration remains. |
| #62 MVP: Private Creator Access | OPEN | Children: #50 | Missing private access family; see #50. |
| #63 MVP: Operational & Financial Analytics | OPEN | Children: #51, #52 | Foundation documented only; root acceptance unfulfilled. |
| #64 MVP: CPM, RPM, Earnings & Budget | OPEN | Children: #53, #54, #60, #61 | Partial: precise rates landed; attributable journals/atomic budget missing. |
| #65 MVP: Creator Payouts via Whop | OPEN | Children: #56, #57, #58, #59 | Missing Whop accounting/execution family; legacy payout workflow exists. |
| #66 MVP: Fraud Detection & Payout Holds | OPEN | Children: #55 | Missing durable fraud family; current signals advisory. |
| #67 MVP: Revocable Sponsor Campaign Analytics Link | CLOSED | No explicit leaf prerequisite | Implemented #74 + frontend #28/#30. Shared admin projection assertion overstated; A10 handles overlap. |
| #68 AUDIT-002: Integrate Feature Audit Producers and Contextual Views | OPEN | #30 | Partial producer integration; typed rate/report events exist, review/contextual gaps remain. |
| #75 feat(rbac): finalize pending business-action mappings | OPEN | No explicit leaf prerequisite | Open mappings; typed action policy still pending for analytics/finance. |
| #76 fix(audit): accept CUIDs in Clipper Group membership events | OPEN | No explicit leaf prerequisite | Verified defect: UUID validation on actual CUID group/user IDs. Fix belongs to existing issue. |
| #77 fix(auth): replace impossible Whop owner access-level check | OPEN | No explicit leaf prerequisite | Verified legacy owner-check defect; new live-roster helper exists; fix belongs to existing issue. |
Acceptance-to-PR coverage
| Required result | Owning units |
|---|---|
| #51: remove mixed-model authority; historically stable earnings | A01/A03/A04/A06; regression A17 |
| #51: campaign/submission/creator/staff reconciliation | A03/A04/A06/A11/A12/A13/A17 |
| #51: pending, held, in-process, failed/released, paid; payout history | A03/A04/A05/A11/A12; #55/#56–#59 prerequisite facts |
| #51: funded, CPM-consumed, RPM-owed, paid, remaining | A03/A06/A11/A13; #31/#33/#53/#54 prerequisites |
| #52: audience/canonical-source matrix | This system map; executable contracts A01 |
| #52: time/platform, daily/cumulative campaign performance and top accepted videos | A02/A13; creator A11; overlap A10 |
| #52: review decisions and unresolved fraud visible | A07/A08/A14/A15; #41/#42/#55 prerequisites |
| #52 and #28: group/member counts/views/earnings, archive, bounded queries and reconciliation | A09/A16/A17; group rate/history prerequisites |
| #52/#63: sponsor overlap consistency | A10/A17; preserve delivered #67 access/privacy |
| #63: all money reconciliation and persisted observation filters | All above plus verification gates; no parent closes from docs alone |
Sequencing hazards resolved in the plan
- #34 ↔ #35: agree the funding-check/transition contract first; lifecycle skeleton can land without enabling unfunded activation, followed by the stacked funded-launch gate. This remains a separate prerequisite owner, not analytics code.
- #44 ↔ #53 at parent level: funding attribution #31/#33 comes first; later consumed/remaining reporting is an integration result. Do not wait for earnings before creating funding facts.
- #66 → #59 → #55: land durable holds/evaluations before payout integration; the parent-level payout gate does not block the hold interface.
- #53/#54/#42: coordinate accounting schema/transaction invariants before approval integration. Tracking must remain independent of moderation.
- #52 → #28 → #51: one A03 financial contract unlocks A09; group aggregation does not require completing the entire #52 UI first.
Historical and external cross-links reviewed
- #2 CLOSED: historical Clipper Group foundation, verified in current campaign-owned membership schema; no new analytics scope. #23 OPEN: older staff-role request superseded in part by current #25/#73 behavior; RBAC owner reconciles remaining acceptance.
- Frontend #29 OPEN: outstanding real staff-panel browser acceptance; independent release evidence.
- Scraper #8 OPEN: isolate worker ID/storage/ports if #36 uses multiple workers on a host.
- Scraper #2, #3, #4, #5, #6, #7, #9, #10 are OPEN observability/fleet/controls follow-ups reviewed as nonblocking; do not implement them within #63. Open scraper PR #11 is not the main-branch baseline.
- Backend #1 concerns PV/custom-scraper work, excluded. All 51 backend non-PR issue bodies and native child endpoints were inventoried to check for missed relationships; only the 48-node material set is scheduled as scope/dependency tracking.
Refresh instructions
Fetch branch refs and re-query only changed issues before each wave; retain distinction between native children, body children and dependencies. Example: gh api repos/BloxClips/Bloxclips-backend/issues/51/sub_issues --paginate. Update the snapshot and this table with dates and code/PR proof. Do not close or mark an implementation complete from issue text. See decisions for stale issue claims and evidence for merged history.