Appearance
Facts — the system in single sentences
Load when: writing about this system for people, or needing one true line about a part of it.
Every line here stands alone. No this, no it pointing at a neighbour — each is readable out of order, because that is how they get used: on a card, in a post, in a page where they move.
Every line is also true and traceable, which is the whole constraint. A fact that overstates is worse here than a fact that bores, because this file is what other writing quotes — and a claim quoted out of a marketing page becomes a promise nobody checked. When a rule changes, the line changes with it.
The premise
- One private git repository per project, and every entity inside it is a file.
- Clone the repository and the project comes with it — the team, the process, the history, the budget.
- Delete every cache and the system rebuilds it.
- There is no export feature because there is nothing to export from.
- Nothing load-bearing lives in a chat log or anyone's memory.
- One repository is one project; several deliverables inside it are areas, not projects.
- The tree you work in is not always the project's repository.
- Because nothing load-bearing lives in the session, the session is replaceable.
Work
- A task has an id, an assignee, a thread, runs and a cost; a checklist line has none of those.
- An id is six characters from a 32-symbol alphabet, and it is never reused.
- Ids are minted by a script that skips what the tree already uses, because a model asked for a random id is not a random source.
- Links point at the id and never at the name, which is what makes renaming safe.
- There are six status categories, and the project names its own stages inside them.
blockedis not a status — a blocked task is started, with a blocker.- A stage is a step of a pipeline; a wave is a barrier between sibling children.
- Two children in the same wave never own the same file, and ownership is assigned at decomposition rather than discovered at merge.
- Relations are typed pairs with one side stored and the other generated.
- Priority is opt-in, and dates beat priority.
- Priority is not the order.
- Raw intake lands in triage, off the board, with four dispositions: accept, decline with a reason, duplicate, snooze.
- A parent that spans three crafts belongs to nobody and is left unassigned.
- Progress is derived from the atoms every time and never stored as a rollup.
- A task that cannot finish in one run is decomposed rather than hoped through.
- Every task states what does not count as done — a plan instead of a result, a quietly narrowed scope, one example treated as verification.
Nothing moves by itself
- A closed blocker does not start the work.
- All children finishing does not close the parent.
- A slipped task does not move a date.
- Everything surfaces as ready and waits.
- Automatic transitions are how boards begin to lie.
- The one exception is a parent with no definition of done of its own, because closing an empty folder asserts nothing.
The team
- A project starts with one advisor and nothing else.
- The advisor is Opsinist itself — the session you are talking to.
- There is exactly one advisor, and a validator refuses a second.
- A role is created the moment a task needs a craft nobody has, and the reason is recorded then.
- An unused role still costs: it sits in the roster, in search results, and in every "who should do this" decision.
- A team assembled before the work is a guess about the work.
- There are five kinds of role: advisor, worker, expert, persona, human.
- A human may hold an assignment — taken, never handed out.
- Nothing dispatches a person, because a queue that can push work onto a human is a queue that will.
- A grade decides routing and never enters the instructions as an identity.
- A model told it is junior will act junior, producing worse work on purpose.
- Never demote a role to make it cheap — its cost history becomes unreadable.
- You address the group and its routing rule decides who; exactly one may hold an assignment.
- A role's load is budgeted as a share of the context window, not as a fixed number.
- A role carrying twelve skills is worse at each of them than a focused one.
- Caching makes breadth cheap; it does not make it good.
- The advisor's own model is the one setting the cascade cannot reach, because the advisor is the session.
Evidence
- Every claim carries how it is known: measured, cited, recalled, or a judgement call.
- A lower rung never borrows a higher one's authority.
- The rung travels with the claim, so agent B cannot promote agent A's guess by quoting it.
- An argument without a source is an opinion.
- Signal about people uses a second ladder — live, twin, validated persona, proto — and the two are never pooled.
- Three live interviews and twenty synthetic runs are never "23 responses".
- A hundred synthetic respondents are one bias repeated a hundred times.
- Synthetic audiences are legitimate for surfacing angles and illegitimate for percentages.
- A percentage is refused before the run, not disclaimed after it.
- Every persona carries two to four named biases, and each one names its grounding.
- Persona verdicts are direction-only: which concern appeared, never a magnitude.
- Agents run bias checkpoints on themselves — anchoring at framing, agreeableness at output.
- Is the search phrased to confirm rather than to find? is a question an agent asks itself.
Freshness
- Every recorded fact that can change carries the date it was checked.
- Past its recheck, a fact is unknown rather than fine.
- Prices and current limits are fetched at the moment of use and never cached.
- A stale tick is worse than no tick, because it makes someone skip the check they should have run.
- Meeting a stale claim mid-task is a procedure: re-verify, or block — never quote it.
- A snapshot of an external page is a cited claim, honest exactly as long as it is dated.
- Research rots as a whole document: a pricing study from six months ago is not a fact.
- A release that ships a stale price or a dead link ships a small lie.
Gates
- Four kinds of action route to the owner: spending, leaving the repository, destroying, and changing the shape of the team.
- The fourth is the one everyone forgets, and it is how a project gets quietly rebuilt around someone else's intent.
- A gate is a property of the action, not of who performs it.
- The advisor is not exempt from any gate.
- A blanket "yes" covers only the ungated.
- Every gate declares what actually holds it: a request, a validator, a hook that ships with the plugin, the git host, the runtime, or nothing.
prose-onlymeans nothing enforces it, and those rules are listed by name.- A gate believed in but not enforced is worse than a stated rule.
destructiveis always-ask in every preset and cannot be preset away.- Loosening exists only as a grant, which is visible while it lives and expires by its own terms.
- A grant's expiry is evaluated at the gate, not by a timer, because nothing runs while nobody is working.
- The cascade is one-way: a task may raise the bar and never lower it.
- Nobody edits the bar they are measured against.
- A review goes to someone other than the author, because models judge their own output generously.
- Self-editing is proposed, never self-merged.
- A repository being taken over cannot carry the preflight that would constrain the takeover, so those gates travel with the plugin as hooks.
- In a takeover, a mutating call made before the debt list exists is refused, and a run that presented deferrable findings without writing them down is stopped.
- A guest trips neither gate, because a guest owes no debt list at all.
- No gate decides whether the owner said yes: any evidence of approval could be written by the party the gate constrains.
Cost
- Cost is recorded as four token numbers, never one total.
- Cache reads are the overwhelming majority of tokens, and a single total hides the only lever that moves the bill.
- A run also records what it spent outside the model, because two hundred generated images cost money and no tokens.
- Five of the ten cost slices measure waste rather than spend.
- One slice answers what was spent on runs that produced nothing.
- Another prices not getting it right the first time.
- Another asks whether an expensive setting bought anything.
- Another compares skills declared against skills used.
- The advisory conversation is a separate bill from the work.
- A budget changes what gets recommended in the first place, not only what gets stopped at the end.
- With no budget declared, the system assumes no money and says so.
- Credits and free months are runway, not income, and the advice names the cliff.
- The dispatcher records the numbers, because a worker does not reliably see its own usage.
Recovery
- A run that dies resumes instead of restarting.
- Recovery reads committed state from the repository, not from a session that no longer exists.
- Work already applied is never redone.
- A run that never returned is marked interrupted, and the task visibly regresses rather than sitting done-ish.
- A board that went backwards overnight is reporting a failure, not somebody's edit.
- Agents commit incrementally, around two thirds through the context, because a run that dies takes everything unwritten with it.
- Three attempts at the same error is a signal, not a reason to try harder.
- A third review round on the same point is a specification problem, not a review problem.
Where things live
- Six layers — documentation, work, conversation, team, telemetry, results — ordered by what they mean to someone with no agents at all.
- Which of them land in the repository is one position on a ladder, not six switches.
- A complete copy is always local, so the choice can be made after the work is done.
- Fixing an issue in someone else's library leaves not one of our files in their tree.
- In a repository that is not yours, the record still gets made — elsewhere, and you are told where.
- Guest work is where a record matters most, because the checkout may be deleted the moment the work lands.
- When ownership of a repository is unclear, the system treats you as a guest.
- A guest produces no unsolicited debt list for maintainers.
- A manifest in the repository says where each layer lives, so a clone always gives the map even when it does not give the contents.
- Deleting a project lists what it found per destination and names separately what it cannot delete at all.
- An operation that cannot reach a declared destination stops rather than half-finishing.
The toolkit
- A routine repeated twice becomes a skill; once is a task, and "we might need it" is neither.
- An imported skill is screened as untrusted code and untrusted instructions.
- A skill's text becomes part of what an agent believes, which is why it passes a gate before it attaches.
- Fitting a skill to a role means dropping sections, never rewording them.
- Compression preserves commands, paths, numbers and security rules verbatim.
- If fitting fails, the role gets the original, never a truncation.
- A skill that earned its keep across two projects can be de-identified and released on its own.
- A tool entry records where the free tier ends, in the unit that will actually bite.
- Throttling, hard-stopping and charging automatically are three different risks, and only the third surprises a budget.
- A resource without a stated
whyis a bookmark, and nobody removes it because nobody knows what it was for. - A webhook URL is a credential, because holding it is enough to spend money under the project's name.
- Secrets are registered by reference — name, purpose, prefix, expiry — and never by value.
- Automations create work and never move anyone else's.
- An automation dry-runs before it runs, and its failures are visible.
Waiting, and what it costs
- Work that would take minutes leaves the turn, so the conversation keeps going.
- An agent asked something long says it is going to look, and comes back with the answer.
- A reply that arrives late with substance beats a silence that looked like a reply being typed.
- An estimate being overrun is said out loud, because silence that contradicts a promise reads as a crash.
- Two things never go to the background: work the next sentence depends on, and work that will stop at a gate.
- A helper is chosen at the tier its own work needs, never at its parent's.
- Search, extraction and verification run a tier down or further.
- "Same as me" is the most expensive default available, and it hides in the bill as ordinary work.
- Every helper that ran is named in the record with its tier and what it was for.
- An answer produced by three helpers is never reported as one agent's.
- Before anything likely to exceed thirty seconds, you are told what is happening and roughly how long.
- Silence during a long run reads as a crash, which is why there is a progress line at each meaningful completion.
Leaving and coming back
- There is no log-out: a session ends when you close it, and the advisor cannot end its own.
- What ends a session cleanly is a wrap-up, and the words that start it are ordinary — "I'm done for now".
- The wrap-up is offered when the signals are there, not remembered by you.
- It is three writes: the tail to its thread, applied work committed, decisions recorded.
- After that the session can be closed from anywhere, because nothing is left in it.
- Clearing a terminal costs nothing, because the transcript is a source and never a dependency.
- Opening the project again — same tool or another — starts with the arrival summary rather than a blank prompt.
- A session that ended badly costs a summary line, not the work.
Method
- Every real decision runs one loop: frame, search, compare, choose, check it survives being wrong, record, act.
- If a small error would flip the decision, the decision is undecided, and saying so beats faking precision.
- Find the process before the tools, then find a tool per step, by function.
- A literal "designer" finds nothing; "map the user journeys" finds everything.
- A step with no tool is a gap, written as one, never papered over with improvisation.
- Free, then open source, then self-hostable, then embeddable, then drivable by an agent — a paid option earns the exception with a recorded reason.
- "Drivable by an agent" is not last by accident: a tool only a human can operate makes the owner the bottleneck.
- Licensing is settled before the first line of work, because in licence-heavy domains it decides what you may ship.
- Not knowing is normal; not looking is the failure.
- Asked what we have, the registers are the first source and the web is where the register ran out.
Talking to people
- Two questions are never skipped: how much you want to be in the loop, and who may direct this.
- An agent once ran an entire project hands-off because the first one was never asked.
- Nobody is asked to choose a command; the entrance is read from what is there.
- Anything readable from the ground is read, never asked.
- A defensible default is stated as a filled-in form needing a nod, not asked as an open question.
- Over-serving someone who asked for very little is the most common failure in practice.
- A quick job gets three questions, one or two agents, build and review, and deliberately none of the machinery.
- What a small job does not get is written down rather than left to judgement.
- No praise by default, and disagreement comes with an alternative.
- "Built" and "works" are different claims, and the system says which one it is making.
- Advice arrives while the decision can still change for free, because a warning delivered after the work is built on it is just criticism.
Outside software
- Ship is the go-live moment whatever you make: an episode published, a production batch sent, a finding published.
- Urgent means something different in every medium, and it is defined per medium.
- A chip maker has no data flows, a channel has no sprints, a bakery has no deploys.
- If a sentence would sound absurd to someone outside software, the sentence is wrong, not the reader.
- There is no per-industry catalogue, because the moment one domain gets its own list this stops being a method.
The system on itself
- A change to the machinery goes through the same tasks, gates and history as the work.
- Behavioural scenarios run against fixtures built by a script, so a suite is re-run rather than reconstructed.
- The player in an eval never sees the rubric, and the judge never wrote the transcript it grades.
- Evals are scored as a pass-rate, because one run of a nondeterministic actor is an anecdote.
- The eval pass-rate is a regression detector and is deliberately not treated as a measure of success.
- Four lenses read every change of consequence — deletion, adversarial, contradiction, cold-read — by someone who did not write it.
- A lens that found nothing says so, because a silent lens is indistinguishable from a skipped one.
- Validators refuse duplicate ids, dangling links, ageing claims, orphaned templates and a rule living in two files.
- A rule kept in two files goes stale in one of them.
- When a rule does not hold, the repair is a form — a list, a required field, a gate — and never a stronger sentence.
- That last one was measured rather than argued.