Hugo Fund Formation Platform14 Jun, 03:49 CET

Signals Catalog

Current taxonomy of the fund_signals mutation signal stream.

Hugo writes one structured signal after selected fund-scoped mutations succeed. Signals are intentionally simple: they record what happened, the affected subject, the actor, and a compact JSON payload. They do not run mutations, compute derived cascades, send email, or trigger synthesis inline.

One pattern. Mutation handlers perform their database write, then call recordFundSignal. Downstream systems such as email, SITREP, and LLM context generation can consume fund_signals later.

Consumer Boundary

Consumers read signals through src/services/fund-signal-consumers.ts. The boundary parses payload_json, validates the closed signal type, returns typed consumer signals, and counts malformed rows it skipped. The /api/funds/:fundSlug/signals route uses this same boundary.

Consumer Status

No LLM prompt-context builder is wired in this worktree. Consumers should start from src/services/fund-signal-consumers.ts and add a concrete call site before introducing a formatter.

Schema

ColumnPurpose
idSignal id
fund_idFund the signal belongs to
signal_typeClosed enum value from src/lib/fund-signals.ts
subject_typePrimary entity type, such as lp_task or mfn_general_rule
subject_idPrimary entity id, nullable for bulk actions
payload_jsonFlat JSON payload, capped at 16 KB
actor_user_idActing user when available
created_atAppend timestamp

Current Signal Types

Signal typeSubjectCurrent emitter
mfn_general_rule_changedmfn_general_ruleMFN matrix category/group toggles
clause_assignedclause_assignmentISL clause election/addition
ops_obligation_createdops_obligationClause operations tag create
ops_obligation_deletedops_obligationClause operations tag delete
side_letter_status_changedcommitmentFund overview side-letter status cell
lp_task_createdlp_taskLP task create
lp_task_updatedlp_taskLP task edit or status drag
lp_task_completedlp_taskLP-scoped complete action
lp_task_archivedlp_taskTask archive action
lp_task_unarchivedlp_taskTask unarchive action
lp_task_commentedlp_task_commentTask comment add
lp_task_bulk_updatedlp_task bulkBulk task action or archive-all-done

Removed Cascade Design

The old root-event plus derived-cascade model was removed. MFN eligibility is not diffed during mutation handling. Eligibility remains a query-time calculation.

Ctrl+K to open · ↑↓ navigate · Enter go · Esc close
Copied