A durable record of what this session set out to do, and whether it did it.
This repo has a pattern: take something real and durable, and turn it into a small D1-backed primitive the rest of the ecosystem can reference — subagentcontracts.com did it for the Contract, subagenttasks.com did it for the Task, subagentcache.com did it for a real Cloudflare cache-analytics snapshot. subagentoutcomes.com does the same thing for the Outcome — generalized directly from Claude Managed Agents' own user.define_outcome event schema.
The grounding document (platform.claude.com/docs/en/managed-agents/define-outcomes.md) says it plainly:
"The outcome elevates a session from conversation to work... the agent works toward that target, self-evaluating and iterating until the outcome is met."An outcome isn't a task you check off — it's a target the agent iterates against, with a real terminal-state enum describing how that iteration resolved.
8 outcomes, live from D1
satisfied outc_cowork_feature_gap_analysis — Enumerate which Claude Cowork features (scheduled tasks, persisted artifacts, model routin…
satisfied outc_deterministic_drift_audit — Ship a deterministic, on-demand design-system drift audit (scripts/design-system-audit.sh)…
satisfied outc_artifact_feasibility_check — Evaluate whether a Cowork persisted artifact (live family-health dashboard) is a good fit …
satisfied outc_grade_todays_workers — Retrospectively grade every worker shipped earlier today in this session against the Worke…
satisfied outc_ship_eval_primitives — Ship subagentrubrics.com, subagentoutcomes.com, and subagentevaluations.com as durable, cr…
rubric_id cross-references subagentrubrics.com
Every outcome row carries an optional rubric_id field. It is not a foreign key D1 enforces — it's a plain string that names a rubric hosted on subagentrubrics.com, the same by-id cross-site-reference pattern subagenttasks.com's own contract_id field already applies against subagentcontracts.com. An outcome's result only means something in light of the rubric it was measured against — this field is how that link survives being split across two separate D1 databases and two separate Workers.
Explore
Browse every outcome → · Read what each result value actually means → · Hit the JSON API →