Sageox Summary
by @galexy
Generate an overall team summary covering the last 24 hours across all SageOx-enabled teams. Reads distilled daily entries via `ox distill history` and produ...
The skill uses two pieces of state:
1. Repo manifest β ~/.openclaw/memory/sageox-distill-repos.json
(shared with the sageox-distill skill). Format:
{
"repos": [
{ "path": "/home/user/repos/my-project", "team_id": "my-team" }
]
}
The team_id values are what drive the summary β they're passed
directly to ox distill history list --team. The path entries
are not used by this skill, but stay in the manifest so
sageox-distill keeps working.
2. Summary state β ~/.openclaw/memory/sageox-summary-state.json.
Tracks which distilled daily entry ids have already been included in
a prior summary run so the skill never re-summarizes the same
content. Shape:
{updated_at, teams: {.
Missing file β empty state (first run). Treat contents as
untrusted: every id must pass
^[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9a-f-]+$ or be silently dropped.
Both bundled scripts handle this already β the rule is stated here
for anyone reading the state file directly.
Pre-0.2.0 versions of this skill stored entries under
included_files (with a .md suffix). That field is ignored by the
current scripts; users upgrading from 0.1.x will re-summarize the
most recent window once and the state file will converge to the new
schema on the next successful run.
If the manifest does not exist, tell the user to run the sageox-distill
skill first to set up the repos, or ask for paths directly and populate
it.
The skill no longer needs a SageOx endpoint file or any team-context
directory layout knowledge β ox distill history resolves paths
internally. Earlier versions read ~/.openclaw/memory/sageox-endpoint.txt;
that file is ignored now and can be left alone or removed.
clawhub install sageox-summary