Actor state machines: employee lifecycle, investors, organizations wired, development proposals
Lint and reload / lint-and-reload (push) Successful in 2s
Lint and reload / lint-and-reload (push) Successful in 2s
- applicants grows past the one decision: invited -> active (onboarded) -> departed, one continuous graph per person. - investors: open -> in_dialogue -> committed -> divested, with decline edges; submission via a new "I want to invest" alternative on /. - organizations (prospect -> client -> past_client) finally gets pages: a review listing with its transitions and a record-a-prospect form. - development_proposals: the question architecture dogfooding its own development - /develop-proposal takes proposals from anyone (human today, an LLM later through the same public form), /develop lets an owner approve or reject, and approval hands off to the automation that opens the PR (see infrastructure's development-commit workflow). The repo's own lint CI gates the merge, same as any human commit. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
7a6cfb5acb
commit
8d10e99726
@@ -10,14 +10,22 @@
|
||||
# the graph itself. Add a new aggregate here alone - no portal code
|
||||
# change needed.
|
||||
aggregates:
|
||||
# One continuous graph per person, applicant through employee - the
|
||||
# bucket name stays "applicants" even as a record progresses past the
|
||||
# applying stage (a deliberate trade: one chain of events per person,
|
||||
# no identity-linking between separate buckets).
|
||||
- bucket: applicants
|
||||
initial: open
|
||||
states:
|
||||
open: { event: applied }
|
||||
invited: { event: invited }
|
||||
declined: { event: declined }
|
||||
active: { event: onboarded }
|
||||
departed: { event: departed }
|
||||
transitions:
|
||||
open: [invited, declined]
|
||||
invited: [active, declined]
|
||||
active: [departed]
|
||||
|
||||
- bucket: subscribers
|
||||
initial: open
|
||||
@@ -45,3 +53,29 @@ aggregates:
|
||||
transitions:
|
||||
prospect: [client, past_client]
|
||||
client: [past_client]
|
||||
|
||||
- bucket: investors
|
||||
initial: open
|
||||
states:
|
||||
open: { event: expressed_interest }
|
||||
in_dialogue: { event: entered_dialogue }
|
||||
committed: { event: committed }
|
||||
declined: { event: declined }
|
||||
divested: { event: divested }
|
||||
transitions:
|
||||
open: [in_dialogue, declined]
|
||||
in_dialogue: [committed, declined]
|
||||
committed: [divested]
|
||||
|
||||
# Proposals to change this very repo - the question architecture
|
||||
# dogfooding its own development. Approval hands off to an n8n
|
||||
# automation that opens a PR against this repo (see the infrastructure
|
||||
# repo's development-commit workflow); the lint CI gates the merge.
|
||||
- bucket: development_proposals
|
||||
initial: open
|
||||
states:
|
||||
open: { event: proposed }
|
||||
approved: { event: approved }
|
||||
rejected: { event: rejected }
|
||||
transitions:
|
||||
open: [approved, rejected]
|
||||
|
||||
Reference in New Issue
Block a user