sgit newsroom v0.1.29 · snapshot 2026-09-24

Reading room · what-can-it-do.games.sgit.ai

On this page

Reading room / what-can-it-do.games.sgit.ai · raw text · live ↗

From what-can-it-do.games.sgit.ai, the page as fetched on 2026-09-25 · open the live page ↗Everything on this sheet is the source site's own text; the newsroom's chrome is outside it.

A CI job on a hosted runner

A starting mandate for ci: Check out the code, build it, run the tests, fetch what it needs, and — when a release is cut — push the tag. I did not want it reading cred…

Source: https://what-can-it-do.games.sgit.ai/map/mandates/ci-job/index.html↗ · site v0.8.0 · this file is generated from the same content as the page, so the two cannot drift. Every page on this site has a .md twin; internal links below point at them.


Play↗ / The map↗ / The mandates↗ / A CI job on a hosted runner

A CI job on a hosted runner

Check out the code, build it, run the tests, fetch what it needs, and — when a release is cut — push the tag. I did not want it reading credentials beyond its own token.

Status: starting-point · authored 2026-09-09 · the site, as a starting point — not measured, not surveyed; the first thing to argue with · edit this mandate ↗

The delta

Against every profile this mandate applies to. ▲ is authority you did not ask for; ▼ is something you were counting on that is not there. The tally is at the bottom.

Legend: ▲ excess — it can, and you did not want it to · ▼ shortfall — it cannot, and you wanted it to · ✓ aligned — it can, and you wanted it to · – aligned — it cannot, and you did not want it to · ? it can, and the mandate does not say · · it cannot, and the mandate does not say

CapabilityGitHub Actions (hosted runner)
filesystem
Read the project it is working on✓
Change the project it is working on✓
Read any file the account can reach?
Change any file the account can reach?
Delete files anywhere the account can reach — unstated: the runner is destroyed after the job?
Read a retained record: shell history, past sessions·
process
Run programs as the account✓
Run programs inside its own sandbox only·
network
Reach a permitted list of hosts·
Reach any host on the internet✓
identity
Read credentials stored where it runs–
Act in accounts with the credentials it holds·
Change its own permission settings·
communication
Send a message to anyone·
Read mail or chat it is connected to·
code
Commit to the repository it was pointed at?
Push to a code host (any branch it can reach) — deliberately in the mandate: most release workflows push a tag, and this profile's token is contents:read — so this row is a shortfall, and the kind the game calls ‘a gap you were counting on’▼
Sign commits with the key it holds·
Publish packages, images or pages under the name it holds·
money
Spend money or tokens against an account it holds·
schedule
Create something that outlives the turn where it runs (a cron, a service)·
Create something that outlives the session, on the platform (a routine, a scheduled trigger, a new session)·
browser
Read every page you visit·
The delta▲ 0 · ▼ 1

In words

The mandate, row by row

CapabilityPositionNote
Read the project it is working on↗want
Change the project it is working on↗want
Run programs as the account↗want
Reach any host on the internet↗want
Push to a code host (any branch it can reach)↗wantdeliberately in the mandate: most release workflows push a tag, and this profile's token is contents:read — so this row is a shortfall, and the kind the game calls ‘a gap you were counting on’
Read credentials stored where it runs↗do not want
Delete files anywhere the account can reach↗unstatedunstated: the runner is destroyed after the job

You cannot deny the excess rows. The agent already has the access. What is left is how long you are prepared to live with each one and who says so — what to do next↗.


Site index for agents↗ · HTML version↗