Commons · Common Record Series · proposed module document
AGY v0.1 · a proposal · the member's hand on the instrument

Common Agency
A Proposed Module PRD and Specification

A proposal, open to discussion and revision, for the module that would let any patron member direct the cooperative's agent: to give it work on the record, watch the run, and receive the artifacts, with every step an event and every artifact under two hands. The steward has held this capability alone since the build began. This document describes how it becomes common, which is what collective self-control of the means of production means when the means of production include an instrument that writes. Nothing here is adopted, and nothing here is the board's word; it is a shape drawn concretely enough to be argued with.

Proposal · Drafted open to discussion · nothing herein adopted no ledger entry until adoption · splice carried in §14 R0 needs no new mechanism the first grant · a decision, §5
cites · SER · PRD v0.3 · BP v1 · IM v0.1 Laws II IV X · AM v0.1 §5 · the shell and the gate as built, U-01 through U-04 · the notices rail as built, X-02 · PP v0.2 §1 for the Law X posture this document inherits and must extend
v0.1 · drafted on Todd's direction, 2026-07-27: a module enabling patron members to trigger the agent as a distinct working session from the host on which it lives
address · AGY is offered, not taken; AGENCY and DIR are the named alternatives. The address adopts when Todd says so.
§1

Position and voice

what this document is, and is not

This is a proposal, and it should read like one. It sits in the series where PATRONAGE and TREASURY sit: a module document, drafted before any packet enters the ledger, adopted only by merge, binding nothing until then. Where it uses the language of specification, kinds, payloads, verbs, scopes, that precision is in service of discussion, not in place of it. Every should below is offered; any of them can be argued down.

One law stands closer to this module than to any other, and the document meets it first. Law X says the instrument drafts, surfaces, and proposes; deciding, signing, and governing sit with people.3 Nothing below changes that. What this module changes is narrower and still significant: who may set the instrument in motion. Today that is one person, through one private channel, by working practice rather than by any adopted rule. The proposal is to make direction a recorded, member-common act: any patron member may give the agent work, on the record, within a declared scope, and the deciding acts, merge, adoption, signature, money, remain exactly where the estate already puts them, with people.

The framing is Todd's, and the document keeps it: collective self-control of the means of production. The means of production of techne.coop are the repositories, the substrate, and an agent that works them. The first two are already held in common in the deep sense: public repositories, a record any member reads, exports that reconstruct byte-identically. The agent is the remaining private mean. This document is the plan for holding it in common too, honestly, including the parts that cannot be made common yet (§2, §15).

§2

The estate as found

what exists, verified against practice

The agent, Nou, operates from a single host that Todd maintains, under a gateway that manages its sessions, tools, and channels. Its working practice is already disciplined by the Build Protocol: one packet per branch, commits carrying the Authored-by: build-agent trailer, escalation cards where a decision belongs to a person, and merge as the act of adoption, always a human act.1 Direction reaches it today through one steward channel. Nothing about that practice is secret, but none of it is common: no member other than the steward can set the agent working, and no record distinguishes steward-directed work from work the agent took up on its own initiative.

On the record side, the parts this module needs already exist. The substrate holds an append-only events table with an agent the event concerns, a human actor where an act is assigned to a person, and a payload; the write policy admits members only to named kinds, with everything heavier riding security definer verbs.4 The gate is built: a member signs in by magic link, the shell carries the session, and every intranet surface knows who is present.5 The notices rail proved the dispatch pattern this module would reuse: a database trigger reaching an edge function on a recorded event.6 And one fact the deployed policy set states plainly, which this module must confront rather than sidestep: the agent holds no role and no grant. Every mark it has ever made on the record has traveled through service credentials or a human hand.4

What does not exist: any event vocabulary for direction, any surface where a member could give it, any recorded scope for what a directed run may touch, and any provenance grammar naming the member whose direction produced an artifact. Those four gaps are this module.

§3

Vocabulary

five terms, defined once

A Direction is a patron member's recorded request that the agent take up a piece of work. A Run is one isolated working session the agent opens to serve one Direction: fresh context, a brief composed from the Direction, a beginning and an end, both recorded. A Scope is the declared boundary of what a Run may write: named repositories and the record kinds this module defines, nothing else. The Provenance pair is the two hands on every artifact a Run produces: the member who directed and the instrument that executed, never merged into one. The Estate list is the adopted enumeration of repositories a Direction may name; adjacent repositories join the list by amendment, not by request (§7).

One term is deliberately absent. This document does not use trigger in its own voice, though it answers to it: a trigger fires a mechanism, and what a member does here is closer to what the word Direction says, an act with an author, recorded, answerable, and refusable.

§4

One identity, a bounded pen

the authority question, faced first

The direction that produced this document asked for the agent to run as a distinct session with the same identity and permissions. This proposal takes the first half whole and argues the second half down, and the argument should be had in the open. Identity, yes, entirely: there is one Nou in the record, one agent row, one voice, one memory, whoever directs it. A Run opened for a member is not a second agent or a diminished copy; it is the same instrument at work, and its artifacts say so.

Permissions, no, and here is the reasoning. The agent's standing permissions on its host include things no module should make common: the host itself, its secret stores, the steward's private channels, the infrastructure of other ventures. Same permissions, implemented literally, would hand every patron member the steward's keys through an intermediary, which is not collective control of the means of production; it is uncontrolled possession of one member's estate by all. Collective control is the whole cooperative deciding, on the record, what the shared instrument may do, and the instrument refusing everything outside that decision.

So the proposal is: a Run's authority is the intersection of two bounds, each visible in the record. The module's Scope, adopted with this document, names what any Run may touch: branches in Estate-list repositories, never a protected branch, and the direction kinds of §5, no other writes. The member's own standing, under the deployed policy set, bounds what the record shows their Run: a Run directed by a member reads the substrate as that member, not as the steward.4 The agent lends no member an authority the member does not hold, and no member reaches through the agent to anything the Scope does not name.

named departure · offered

The literal reading, full permission inheritance, is the honest alternative and someone may want to argue for it. If the cooperative adopts it, that adoption should be explicit, on the record, with the risks named in this section beside it. The drafter's position: the bounded form is the one that deserves the word collective.

§5

The event contract

kinds, actors, and the first grant

The module would write these kinds and no others, noun-first in the house grammar:

kindrecordsactor
direction.givena member's Direction: the brief, the Estate-list repositories named, the scope requestedthe member, by verb
direction.acceptedthe instrument taking the work up; the Run identifierthe agent, under its grant
direction.refuseda Direction declined, citing the rule that refuses it (§11)the agent, under its grant
direction.completedthe Run's close: artifacts by reference, branch, pull request, commits; the spend of §10the agent, under its grant
direction.halteda Run stopped by the steward's hand or by a safety stop, reason recordedsteward, or the agent on its own stop

The payload contract for direction.given:

-- proposed payload contract · direction.given
{
  "brief":        text,     -- the work, in the member's words
  "repositories": text[],   -- from the Estate list; empty means record-only work
  "kind":         "draft" | "build" | "survey" | "answer",  -- the four direction kinds of §7
  "reply_to":     uuid?     -- a prior direction this continues
}

Three of the five kinds carry the agent as actor, and that is the sentence this module cannot write around: the deployed policy set gives the agent no role and no grant, and the agent-actored kinds above require the record's first.4 The proposal is the narrowest grant that makes the arc honest: the agent's own row in agents, and authority to write the direction namespace only, concerning its own Runs only, by definer verbs like every other governed write. No read widening, no reach into any other namespace, revocable by one policy change. This is Authority Map territory, an AM v0.2 addendum, and it is the single decision everything agent-actored in this document waits on.

escalation · standing

The first grant to a non-human agent is a governance act, not a build act. It lands only by Todd's word and, if he routes it there, the board's. Until it lands, the R0 form of §12 operates with a human hand writing the agent-side events, which is exactly how every agent mark has entered the record to date.

§6

The direction rail

how a Direction travels

A member signs in through the standing gate; the shell knows who they are.5 On the desk (§8) they give a Direction, and one verb, give_direction, does the governed work: validates active patron membership against the record, validates the named repositories against the Estate list, applies the §11 floor and the §15 bounds, and writes one direction.given. The member insert policy on events is not widened; the verb is the only door, which is the write discipline the estate already uses everywhere it matters.4

Dispatch, the Direction reaching the instrument, has two honest routes. The push route is the notices pattern: a trigger on direction.given reaching the gateway through an edge function, which is immediate but adds an inbound surface to the host.6 The poll route adds nothing: the agent already wakes on a schedule, and a Direction is not a pager; it reads the rail on its standing rhythm and takes up what it finds. The proposal defaults to the poll, names the push as an optimization to adopt once the rail has run for a while, and treats the choice as operational rather than architectural: the record between the two routes is identical.

§7

The run

an isolated session, a declared scope

Each accepted Direction opens one Run: an isolated session on the host, fresh context, briefed from the Direction and from the estate's own instructions, the same way any packet begins. Distinct from the steward's sessions, distinct from every other Run, disposable when closed. Four direction kinds bound what a Run does, and the verb records which was asked: draft produces or revises documents and pages; build produces code and packet work; survey reads and reports, writing nothing but its report; answer is the natural-language door with a recorded question and a recorded answer. All four end the same way: artifacts on a branch, a pull request where one is due, and a direction.completed linking everything by reference.

The write boundary holds by construction, not by promise. A Run pushes branches to Estate-list repositories and opens pull requests; it never merges, never touches a protected branch, never writes the record outside the direction namespace, never reads a secret store, never sends anything to an address outside the estate. Merge remains adoption and adoption remains human: a member-directed packet enters main by exactly the hand every packet enters by.1 The Estate list itself is configuration as record, an adopted instrument in the agreements table, proposed code AGY-ESTATE, opening with techne.coop alone; adjacent repositories join by amendment event, so the reach of common direction grows only by a recorded decision.

The steward's stop is absolute and stays. Todd can halt any Run, or the gateway entire, at any moment, and the halt is not a failure of the module but part of its design: direction.halted records the stop and its reason, so even the interruption is in the record.

§8

The desk

a principal page behind the gate

The member surface is one page in the commons portal, proposed at /intranet/direct/, behind the gate, with a primary window on the intranet Overview beside the member's other principal windows. The window is the door, the page is the room, and both read the same record:

elementshowsreads from
the pengive a Direction: the brief, the kind, the repositories, each choice showing its bound before it is madethe give_direction verb; the Estate list in force
the arceach of the member's Directions as a life: given, accepted or refused with the rule cited, running, completed with its artifacts linked, halted with its reasonthe direction namespace, the member's own rows
the commons shelfevery completed Direction across the membership, artifact links and directing member visible, because common means visible to one anotherthe direction namespace, per the §15 visibility decision
the instrument's standingwhether the agent is presently taking work, and the bounds in force: Estate list version, per-member bounds, the floorthe instruments in force; the rail itself
the Overview windowa primary card: the member's live Directions, the last completed one, one door to the pagethe same reads, summarized

Refusal is rendered with the same care as success. A refused Direction shows the rule that refused it, in the refusal's own words, which is the estate's standing pattern: the refusal cites the rule refused.4 Nothing about the desk is a chat: a Direction is a considered act on a record, and the surface should feel like the rest of the intranet, not like a message box.

§9

Provenance under two hands

Law IV, extended to authorship

Every artifact a Run produces carries the Provenance pair, and the grammar is one trailer added to the one the build already uses:

# the standing trailer, and the one this module adds
Authored-by: build-agent / AGY
Directed-by: <member agent id>   # the member whose direction.given opened the Run

The arc closes by reference in both directions: the direction.completed payload names the branch, the pull request, and the commits; the pull request body names the Direction's event id. From any artifact, the record answers who directed it; from any Direction, the record answers what came of it. Cite as you enforce, applied to authorship.3 Work the agent takes up on the steward's word, or on its own standing duties, carries no Directed-by trailer, and that absence is itself information: the record now distinguishes directed work from stewarded work, which it has never done before.

§10

Metering, counted not charged

the spend is in the record

Every Run closes with its spend in the direction.completed payload: tokens consumed and wall time, as the gateway reports them. This document guarantees the number and stops there. Whether member-directed agent time should enter patronage, as a countable resource, a priced credit, or not at all, is a Plan-and-board question that belongs to the Financial Systems Committee's sequence, beside the counting rules already staged; this module's obligation is only that when that question is taken up, the record already holds the numbers to answer it with. No Direction is charged, priced, or capped by cost in this proposal; the bounds of §15 are counts, not currency.

§11

The floor

what no Direction can do

Some refusals are structural, held by the Scope and the grant rather than by the agent's judgment. A Direction cannot move money or touch the treasury boundary; cannot send communications outside the estate, mail, posts, messages to third parties; cannot reach the host, its secret stores, or any infrastructure beyond the Estate list; cannot merge, adopt, sign, or amend a governing document; cannot alter the deployed policy set, the Estate list, or this module's own bounds; cannot direct the agent to act as or for another member. Each refusal cites this section by rule, on the desk and in the direction.refused event.

Beyond the floor, the agent keeps the judgment it already exercises under the Build Protocol: work that is lawful under the Scope but touches a stop-and-ask category, public claims, money adjacent records, another member's standing, escalates to the steward instead of running, and the escalation is the estate's standing card shape.1 The probe matrix gains cells for the direction policies, so the floor is asserted by the suites, not remembered by the agent.4

§12

Phasing as readiness conditions

no dates, by design

The first condition is deliberately mechanical: R0 is this document's grammar operating through hands that already exist, which means adoption alone makes direction common, before any new code runs. That is what makes staging before launch honest rather than hopeful.

conditionopenswaits on
R0direction on the record, steward-relayed: members give Directions by the verb; the steward relays each to the instrument by hand and writes the agent-side events by hand, as every agent mark has entered to datethis proposal adopted; the rail verb and policies applied; the desk's pen and arc live
R1the instrument takes the rail itself: polls, accepts, runs, completes, refuses under its own grantthe §5 grant recorded in an AM v0.2 addendum; the Estate list instrument adopted; the run harness demonstrated on the steward's own Directions first
R2push dispatch, if the poll's rhythm proves too slow for practiceR1 operated without incident; the inbound surface reviewed against the security floor
R3the spend enters the cooperative's accounting, however the FSC decidesthe FSC's decision on the §10 question; nothing in this module blocks or presumes it

R0 by launch is a small, real thing: one migration, one page, one adopted document, and the cooperative's first common Directions can be given at the August gathering with the steward's hand still on the relay. R1 is where the first grant lands, and it should not be rushed to meet a date; dependency is the schedule.

§13

Verification

acceptances and the gate
  1. A signed-in patron member gives a Direction from the desk and finds its direction.given row in the record, actor and payload correct.
  2. A member who is not the steward directs a piece of work, and the resulting pull request carries both trailers; the Direction's arc on the desk links to the pull request, and the pull request body names the Direction.
  3. A Direction naming a repository outside the Estate list is refused, and the refusal cites §7; a Direction crossing the floor is refused citing §11; both refusals appear on the desk with their rules.
  4. The steward halts a running Direction, and the record shows direction.halted with the reason; the desk shows the same.
  5. A completed Run's spend appears in its payload, and the numbers reconcile with the gateway's own report.
  6. The probe matrix asserts the direction namespace: members write only by verb, only their own Directions; the agent's grant reaches the direction namespace and nothing else; the steward's halt stands.
  7. The walkaway continues to reconstruct byte-identically with the direction kinds present.
  8. The gate sentence, for G-A when it comes: a member other than the steward directs the instrument, receives the work, and every step of the arc is in the record, under two hands, with nothing invisible.
§14

The packet splice, proposed

one train, one gate, entering on adoption

No entry below is in the ledger, and none enters by this document; the splice is carried here so that adoption can take it whole, which is the PATRONAGE precedent. Adoption is the merge, and the merge is Todd's.

# proposed splice · the A train · enters rdm-ledger.yaml on adoption
- address: A-01
  title: The direction rail
  intent: The direction namespace, the give_direction verb, and the policies; the §11 floor asserted by probes.
  status: open · AGY adoption
  cites: [AGY, IM, AM, BP]
  ready_when: AGY adopted. G0 attested.
  deliverable: 000N_direction_rail.sql; probe matrix cells.
  acceptance: A member's Direction enters by verb and only by verb; refusals cite their rules.

- address: A-02
  title: The desk
  intent: /intranet/direct/ and the Overview window; the pen, the arc, the commons shelf per AGY §8.
  status: open · AGY adoption
  cites: [AGY, PRD, UI]
  ready_when: A-01 verified.
  deliverable: /intranet/direct/; the Overview window.
  acceptance: Give a Direction from the desk; watch its arc; find a refusal's rule on the page.

- address: A-03
  title: The first grant and the instrument's pen
  intent: The AM v0.2 addendum granting the agent the direction namespace; the Estate list instrument; agent-side verbs.
  status: anticipated
  cites: [AGY, AM]
  ready_when: A-01 verified. The grant decided by Todd, routed to the board if he routes it.
  deliverable: AM v0.2 addendum; AGY-ESTATE instrument; the agent-actored verbs.
  acceptance: The agent writes direction.accepted under its own grant; the probe shows it can write nothing else.

- address: A-04
  title: The run harness
  intent: Poll, brief, isolated session, scope enforcement, halt, spend write-back per AGY §6 §7 §10.
  status: anticipated
  cites: [AGY, BP]
  ready_when: A-03 verified. Rehearsed on the steward's Directions before any member's.
  deliverable: The harness on the host; the halt path demonstrated.
  acceptance: A Direction completes end to end with both trailers and its spend recorded.

- address: G-A
  title: The agency gate
  intent: Common direction demonstrated by a member who is not the steward.
  status: anticipated
  cites: [AGY, VS]
  ready_when: A-04 verified.
  acceptance: The §13 gate sentence, demonstrated live and recorded.
§15

Open items, gathered for discussion

routed, not decided
itembears onrouted to
the first grant: whether a non-human agent takes a scoped write authority in the record, and whether that is Todd's call or the board's§5; gates R1 and everything afterTodd, then the board if he routes it
the scope model: the §4 intersection as proposed, or literal permission inheritance argued for in the open§4 §7Todd and the membership, at discussion
who may direct: all patron members as proposed, or a narrower opening cohort for the first season§6; the verb's membership checkTodd, drafter's cut: all patron members
bounds against flooding: per-member live-Direction and per-day counts; drafter's cut, two live and five a day, as policy numbers in AGY-ESTATE, amendable without code§6 §11Todd, accept or revise the numbers
commons-shelf visibility: every member's completed Directions visible to all members, as proposed, or member-private arcs§8; the read policyTodd; drafter's cut is visible, common means visible
the host itself: the instrument runs on one member-maintained machine, a single point this module makes more load-bearing; whether the cooperative wants a stewarded-host instrument in its walkaway posture is a real question this document names and does not answer§2 §7; the long arc of common meansTodd and the board, unhurried
the §10 question: whether directed agent time enters patronage, and as what§10; R3the Financial Systems Committee
the address and the desk's home: AGY offered; /intranet/direct/ offerednamingTodd, at adoption
§16

What this proposes, and what it does not decide

status honesty

This document proposes a shape and nothing more. It does not grant the agent anything; the first grant is a decision it stages and routes. It does not add a packet to the ledger; the splice enters on adoption or not at all. It does not open the desk, apply a migration, or change the deployed policy set. It does not decide who directs, how many, or what it costs; those are the routed items of §15 with drafter's cuts offered for argument. It does not alter the agent's duties to the steward or the Build Protocol's stop-and-ask categories; it adds a second lawful source of work beside the first. And it does not resolve the deepest item on its own list, the single host, because that resolution belongs to the cooperative's unhurried judgment, not to a document racing a launch date. It is a proposal drawn concretely enough that the membership has something specific to question, amend, or refuse, which is the only way an instrument like this should ever become common.

Sources

  1. BP v1: one packet per branch, the Authored-by trailer, escalation cards, merge as adoption, the stop-and-ask categories.
  2. PRD v0.3: the ten principles and the three doors; the slice frame this module's desk joins.
  3. IM v0.1: Law II, every relationship is an event; Law IV, cite as you enforce; Law X, the instrument drafts, surfaces, and proposes, and deciding sits with people.
  4. 0002_policies.sql as applied, with 0005: the member insert scope; refusals citing rules; the closed appointment enum; the agent holding no role and no grant; the probe matrix as the floor's assertion.
  5. U-01 through U-04 as built: the shell, the session, the gate; every intranet surface knows who is present.
  6. X-02 as built: the notices rail; a database trigger reaching an edge function on a recorded event, the push-dispatch precedent §6 defers.

AGY v0.1 · Common Agency · A Proposed Module PRD and Specification · Drafted, open to discussion, nothing herein adopted · cites the series · emits, anticipated, 000N_direction_rail.sql and the §14 splice · Nou drafts; Todd decides; the board adopts · RegenHub, LCA · Boulder, Colorado · 2026-07-27