RepoOps
Open the app
04 / AI Security

Price what your unattended loops cost

Security Tax runs four report-only checks over data RepoOps already holds: agent pull requests merged without a security gate, skills and loops from an unreviewed source, secrets in captured logs, and armed rules past their re-audit. A check with no signal reads unknown, never a pass, and nothing here blocks a merge or changes a rule.

Last updated

Watch it

30.1 s, captions on. Narration: Microsoft Zira Desktop (provisional voice; an approved narration source is pending).Transcript
Read the narration
  1. 0:00 Your loops run overnight, unattended.
  2. 0:03 Nobody has priced what that costs.
  3. 0:06 RepoOps runs four checks over data it already holds.
  4. 0:09 No signal reads unknown, never green.
  5. 0:13 Gate coverage on agent pull requests, skill provenance, secrets in logs, rules past re-audit.
  6. 0:23 Read the unknowns first.
  7. 0:25 The team page carries counts, never a secret.

Synthetic example. Read the guide

1

How to

The RepoOps desktop app capturing sessions for the repository.

The gh command line signed in, for the gate coverage check.

For the team page: this device bound to a team on the hosted plan or above, with cloud sync on.

  1. Turn on the publisher.

    On Privacy and egress, under What this machine publishes to your team, turn on Security Tax. It needs the device bound and cloud sync on, and the section says which is missing. The capture daemon re-measures three of the checks at most once a day and publishes on its hourly cycle.

  2. Open AI Security on repoops.ai, then Security Tax under All tools.

    One row per machine and repository: the band, the four statuses (Gate coverage, Provenance, Secret-in-logs, Scope creep) and the counts (High secrets, Untrusted sources, Stale re-audits). Last update turns amber past two days, which means the machine stopped publishing, not that nothing changed.

  3. Measure gate coverage for a repository you care about.

    The scheduled publish leaves Gate coverage unknown, because it asks gh about each recent agent pull request's checks only on demand. Request GET /api/loop/security-tax?repo=<id> on the desktop to run all four checks with the default 90-day window; the next publish carries the result.

  4. Mark each armed rule audited after you review it.

    On the desktop AI Security page, the Security Tax re-audit card on Risky commands and enforcement shows each armed agent-policy rule for the repository you pick, with Mark audited. Pressing it starts that rule's 30-day clock. Nothing else stamps a rule.

  5. Open AI Security on the desktop, then Risky commands and enforcement, and press Costliest first under Session signals.

    Each signal carries its session's cost in the Session cost column, and the card says how many sessions were flagged, how many of them were priced and what the priced ones cost. Costliest first puts the most expensive session at the top, the worst signal first within it. Each session id opens its trace.

2

Use cases

A key in an overnight transcript

Situation
A team row reads attention with High secrets at 1.
You do
Open the desktop app on that machine and read the Secret-in-logs result for the repository, which names the session and field without the value.
You see
You know which credential to rotate and where the text sits. The stored log is unchanged: the check found it, it did not redact it.

The session that was both risky and expensive

Situation
A manager wants the one agent run worth a conversation this week.
You do
Open Session signals on AI Security's Risky commands and enforcement tab, press Costliest first and read the top row, then open its session.
You see
The session that tripped the worst signal at the highest cost sits first. A session on a model with no known price reads unpriced instead of a guessed figure.
3

Expected outcome

WorkedEach hosted row shows a band of clean or attention, the four statuses and a Last update under a day old.
WorkedSession signals shows flagged sessions, of them priced and what the priced ones cost, and a Session cost on each row.
Did not workEvery row reads unknown for Gate coverage.

Next step: Expected on the scheduled path. Measure it on demand as in step 3; gh must be signed in.

Did not workA card reads unknown with a reason such as no captured session logs in the window to scan.

Next step: That input is missing. An unknown is neither a pass nor a miss; capture sessions for the repository and it will measure.

Did not workThe team page is empty.

Next step: The publisher is off, the device is unbound, cloud sync is off, or the team is below the hosted plan (the ingest answers 402).

4

What else to consider

What it does not do

It reports. It does not block a merge, stop a run, change a rule or remove a secret. Gate coverage asks about at most 30 of the newest agent pull requests per request. Provenance covers skills and the loop registry file.

What reaches the team

One row per machine and repository with the band, the statuses and integer counts. The session, the field, the secret class and the fingerprint stay on the machine. The cost of each flagged session is desktop only.

Cost

No model call and nothing metered. The checks read files, local git and the gh command line; the only RepoOps egress is the hourly row, and only with the publisher on.