---
name: os-graph-report
description: Reports harness health and learning over time from the workspace's own signals log and evolve records: evaluator pass rate, override rate, signal freshness, records with doubt filled, proposals approved, plus week-one baseline versus now. Use when the user says "how is the OS doing", "graph report", "is this actually learning", "baseline vs now", or when the user needs an evidence-based progress review.
---

# os-graph-report

Compute from the log. Never estimate. If the log is thin, say so and report what exists.

## Preflight (every run)
1. Confirm `GTM-AI-OS/` is accessible. If not: "I need access to your GTM-AI-OS folder. Select it in Cowork's folder picker, or run `os-install` from the core plugin." Stop until it is.
2. Read `CLAUDE.md`, `INDEX.md`, `context/fence.md`, and the last 20 lines of `signals/log.md`.
3. Check the prerequisites below. For anything missing, ask the cold-start questions and offer: (a) run the earlier skill now, or (b) fast path: answer the questions and this skill writes a minimal version of the missing artifact marked `status: draft (fast path)`.
4. Before any connector write or external send, check `context/fence.md` for the account's bucket and the action. Auto = proceed. Approve = ask. Never = decline and name the row.
5. On finish, update the artifact row in `INDEX.md` (with `[[wikilinks]]` to the files this run read) and append one line to `signals/log.md`: `<date> | <skill> | <files read> | <produced> | <human changed> | <open question>`.

## Metrics
| Metric | Source | Healthy |
|---|---|---|
| Evaluator first-round pass rate | evaluator lines in `signals/log.md` | Rising toward 80% |
| Human override rate on approved sends | approval lines | Falling; never zero |
| Drafts refused on insufficient evidence | refusal lines | Present (the gate works) |
| Median age of cited signals | account records | Under 30 days |
| Records with contradicting evidence and doubt filled | account records | 100% |
| Signals tested against losses before entering the library | `signal-library.md` | 100% |
| Proposals approved per week | `evolve/` | 2 to 5 |
| Fence: Approve → Auto changes | `context/fence.md` history | Only with the thresholds met |
| Dead nodes, duplicates, broken links | `INDEX.md` wikilinks | Zero |

## Output
`evolve/REPORT-<date>.md`: the table, week-one baseline vs now for each metric, three sentences on what changed and why, and the one thing to fix first. This report is the user's evidence of progress.
