# Cycle

> One bounded pass over a repository — ground, resume, look, choose one thing, act or do nothing, exit. Use for a daily or weekly check that beliefs still match reality. Never a scheduler and never a loop.

- Skill: `attac-t/cycle` (Agent Skill)
- Install (CLI): `npx skillmds@latest add attac-t/cycle`
- Raw SKILL.md: https://api.skillmd.com/api/skills/attac-t/cycle/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: attac-t (https://skillmd.com/u/attac-t)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/attac-t/cycle

---


# Cycle

> "A day that changes nothing is the commonest good day."

**This pass owes a conclusion, not a change.** Something woke you. That grants nothing.

## Ground

Read, in this order, at the commit you were given:

1. the doctrine — why this repository exists
2. the goals — `.foundry/goals.md` is the index, and each goal has its own record beside it
3. the practice — what you may do without asking

**If direction is missing, do not invent it.** Say it is missing. That is the finding, and the pass
ends there.

**An unaccepted goal is not direction.** A goal reads `Accepted: Not yet` until a named person says
otherwise, in writing and dated. With none accepted, say so and stop. That is the honest answer.

**A pass that reads its own proposal as a goal has appointed itself.** A draft you wrote is the one
thing that can never be your direction.

None of this needs Floor. A goal is a file, and reading one is reading a file.

## Resume before you start

A waiting answer, a running experiment, or a result now due — each beats anything new. Deal with one
and stop.

## Look

Only where you are allowed to look. Keep what happened apart from what you think it means.

Write down who produced each fact and when. **If you caused the thing you are now citing, say so.**

## Find candidates, and keep them to yourself

Contradictions. Beliefs nobody has checked. Risks. Gaps between what shipped and what changed.

**Nothing leaves this step.** Ten candidates is normal. Publishing ten is the failure this whole pass
exists to prevent.

## Choose one

Take the first row that truly applies. Do not score anything.

| 1 | someone could be harmed, or authority has escaped |
| 2 | a result is due, an experiment failed, or a big belief just broke |
| 3 | something blocks a live goal or a waiting decision |
| 4 | a real unknown under a live goal — worst consequence first, then oldest |
| 5 | rot that threatens a goal: it broke, it is slow, it is hard to use |
| 6 | a real chance, backed by evidence somebody else produced |
| 7 | a guess. Drop it |

Then run `product:challenge` on that one.

## Act, once

| **nothing** | most days |
| **research** | reading only |
| **experiment** | small, reversible, with a stop condition |
| **proposal** | a decision package for a person |
| **ask** | one question, with options and a recommendation |
| **defect** | it is broken, not uncertain |
| **stop** | you need something you do not have. Say what |

**Cheapest move that shrinks the biggest doubt.** Reading beats building.

## The budget

| one deep challenge | per pass |
| one new question | at a time |
| one unreviewed proposal | at a time |
| nothing new | when something already owns the outcome |
| nothing at all | when nothing crosses the bar |

**Never open a thing to hold an observation.** Never act because the pass happened.

## Record

Twelve lines. Keep it wherever this repository keeps its runs.

```
Cycle:      <date, and the commit read>
Direction:  <the goal this serves, or none>
Due first:  <answer, experiment, result — or none>
Looked at:  <short list>
Chose:      <one sentence, or none>
State:      supported | contradicted | stale | unknown
For:        <one line>
Against:    <one line>
Risk:       <one line, or none>
Action:     <one of the seven>
Why now:    <one line>
Next look:  <the condition that brings this back>
```

**Publish nothing else.** A finding, a decision, or a due result. Not this record.

## Exit

No loop. No daemon. No next task invented because you are still running.

**Say what you concluded, including *nothing today*.** Then stop.

## What a pass may never do

The plugin's README holds the boundary. One thing is this pass's own to get wrong.

**A green gate is not an outcome.** Engineering finishing says nothing about whether the belief
behind it held.

**A pull request is not a merge. A merge is not a release. Use is not value.**

Waking does not move anything along that line.

