docs: ADR-0014 — unified Profile model + agent registry
Propose a shared substrate for per-user prefs, contexts, per-key consents, and per-agent state so adding an agent stays a manifest change. Updates CLAUDE.md, README, and architecture docs to reflect the multi-agent pipeline (ADR-0013) and the registry direction. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -25,12 +25,37 @@ Session auth
|
||||
expires_at
|
||||
revoked_at?
|
||||
|
||||
Profile profile
|
||||
user_id (pk)
|
||||
timezone
|
||||
quiet_hours jsonb: [{start,end,days}]
|
||||
contexts jsonb: [{name,predicate}] introduced in Phase 2
|
||||
consents jsonb: {integration: {read,write,retain_days}}
|
||||
User (extended) profile ADR-0014
|
||||
+ tone 'direct' | 'gentle' | 'motivational'
|
||||
+ tip_kinds_json jsonb: allowed tip kinds (stable globals)
|
||||
|
||||
UserPreference profile ADR-0014
|
||||
user_id, scope, key (pk)
|
||||
scope 'orchestrator' | 'agent:<id>'
|
||||
value_json open-ended; agent validates against its pref_schema on read
|
||||
source 'user' | 'inferred' (inferred never overwrites user)
|
||||
updated_at
|
||||
|
||||
UserConsent profile ADR-0014
|
||||
user_id, consent_key (pk)
|
||||
consent_key 'data:todoist' | 'data:calendar' | 'agent:focus-area' | ...
|
||||
granted_at
|
||||
revoked_at? null = currently active
|
||||
|
||||
UserContext profile ADR-0014
|
||||
user_id, name (pk) 'work' | 'home' | 'vacation' | user-named
|
||||
active manual toggle in M2; auto-inference per agent in #112-#116
|
||||
schedule_json? optional: when this context is active
|
||||
created_at
|
||||
|
||||
AgentOutput recommender ADR-0013
|
||||
id (pk)
|
||||
user_id
|
||||
agent_id e.g. 'overdue-task' (matches a manifest)
|
||||
prompt_text snippet for the orchestrator prompt
|
||||
signals_snapshot jsonb: inputs the agent consumed
|
||||
computed_at, expires_at computed_at + manifest.ttl_sec
|
||||
agent_version bump to invalidate cached outputs on logic changes
|
||||
|
||||
Credential integrations
|
||||
user_id
|
||||
@@ -53,10 +78,10 @@ Event events
|
||||
TipInstance recommender
|
||||
tip_id (ulid)
|
||||
user_id
|
||||
policy_name "random" | "bandit.linucb" | "remote:v3"
|
||||
policy_name "v4-orchestrator" (ADR-0013) | legacy bandit names retained for history
|
||||
policy_version
|
||||
candidate_source "todoist" | "advice.library" | ...
|
||||
context_snapshot jsonb: features seen at decision time
|
||||
candidate_source "todoist" | "advice.library" | "agent-orchestrator" | ...
|
||||
context_snapshot jsonb: features + agent snippets seen at decision time
|
||||
tip jsonb: {kind,title,body,source,deep_link,meta}
|
||||
created_at
|
||||
shown_at? set when the client reports render
|
||||
|
||||
Reference in New Issue
Block a user