You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Write docs/loopwright/principles.md: the descriptive statement of loopwright's
core opinions and its detail territory, with the classification rule and the
amendment mechanism. This is the artifact the whole RFC exists to produce, and
the three downstream RFCs that already cite it depend on it existing.
The doc must match the conventions of its two siblings in docs/loopwright/:
single # title then ## sections, sentence-case short section names, tables
as the default format for anything enumerable, hard wrap at ~78 columns, no
front matter, no date, no emoji, impersonal declarative voice, every path and
tool name backticked.
Acceptance criteria
docs/loopwright/principles.md exists and opens with the Context that
states near-autonomy as the destination and the core opinions as its
preconditions, not its constraints.
P1–P12 are present as a list with stable ids, and each carries three
things: the assertion, a rejects: line naming one concrete change it
refuses, and an enforcement pointer that is a file name with no line
number (left empty where nothing enforces it).
T1–T8 are present, each with its territory and its current default. Six
carry a named seam; T4 and T6 carry none — the RFC omits them
deliberately, so inventing one is a defect, not a completion. No contract is
specified for T1, T2, T3, T7 or T8 — the seam is named, the shape is its own
RFC's — with T5 the one exception, whose four required capabilities are
enumerated in full because this RFC resolves them.
The classification rule and an Amendments section are present; the
amendment rule states that ids are stable, amendments never renumber, and
a withdrawn opinion stays as P4 (withdrawn, RFC #N).
P7 names the policy file only. baseline.json is described as measured
state belonging to P3, never as policy.
P12's assertion carries the three-valued connector contract — a value for a
core-owned key, unconfigured, failed — with each state's verdict stated
(unconfigured warns and never blocks; failed always blocks), not only
"connectors never invent a key". This is normative content and belongs in
the doc; see the note on the RFC's rationale prose below.
The twelve opinions and the eight territories are tabulated in the RFC's Decision section.
On the RFC's "Why the contested branches settled where they did" section: what
must not travel into the doc is the history — which alternative was
rejected, what the original RFC said before the grill, which RFC a decision
contradicts. What must travel is any normative content that happens to
live only in that prose, because the Decision tables are summaries: the
three-valued connector contract for P12, the P2/P8 division of labour, and the
fact that baseline.json is measured state and not the policy file P7 names.
The test is: a rule a reader must obey belongs in the doc; the story of how it
was decided belongs in this issue.
The four agent-host capabilities (T5) and the T6/T7 relationship are spelled
out in the RFC's Detail territory section.
Spec and implementation plan: docs/specs/issue-11.md (committed as f981739 on task/11-principles-doc, cut from feat/rfc-5-core-principles).
7 steps, 8 acceptance criteria. No test step — markdown is outside every collector's scope (.loopwright/config.json sets sources.roots to the engine's .mjs files), so each step substitutes a check first command that fails before the change and passes after.
Goal
Write
docs/loopwright/principles.md: the descriptive statement of loopwright'score opinions and its detail territory, with the classification rule and the
amendment mechanism. This is the artifact the whole RFC exists to produce, and
the three downstream RFCs that already cite it depend on it existing.
The doc must match the conventions of its two siblings in
docs/loopwright/:single
#title then##sections, sentence-case short section names, tablesas the default format for anything enumerable, hard wrap at ~78 columns, no
front matter, no date, no emoji, impersonal declarative voice, every path and
tool name backticked.
Acceptance criteria
docs/loopwright/principles.mdexists and opens with the Context thatstates near-autonomy as the destination and the core opinions as its
preconditions, not its constraints.
things: the assertion, a
rejects:line naming one concrete change itrefuses, and an enforcement pointer that is a file name with no line
number (left empty where nothing enforces it).
carry a named seam; T4 and T6 carry none — the RFC omits them
deliberately, so inventing one is a defect, not a completion. No contract is
specified for T1, T2, T3, T7 or T8 — the seam is named, the shape is its own
RFC's — with T5 the one exception, whose four required capabilities are
enumerated in full because this RFC resolves them.
Amendmentssection are present; theamendment rule states that ids are stable, amendments never renumber, and
a withdrawn opinion stays as
P4 (withdrawn, RFC #N).baseline.jsonis described as measuredstate belonging to P3, never as policy.
core-owned key,
unconfigured,failed— with each state's verdict stated(
unconfiguredwarns and never blocks;failedalways blocks), not only"connectors never invent a key". This is normative content and belongs in
the doc; see the note on the RFC's rationale prose below.
except the RFC: Versioned releases with changesets, and automatic changesets in the loop #9 version-bump contradiction, which the RFC states is
deliberate.
Pointers into the RFC
Decision section.
must not travel into the doc is the history — which alternative was
rejected, what the original RFC said before the grill, which RFC a decision
contradicts. What must travel is any normative content that happens to
live only in that prose, because the Decision tables are summaries: the
three-valued connector contract for P12, the P2/P8 division of labour, and the
fact that
baseline.jsonis measured state and not the policy file P7 names.The test is: a rule a reader must obey belongs in the doc; the story of how it
was decided belongs in this issue.
agent-hostcapabilities (T5) and the T6/T7 relationship are spelledout in the RFC's Detail territory section.
it draws are
core ↔ connector,engine ↔ host,loop ↔ agent hostandhost ↔ harness. The doc names seams but draws nothing.docs/loopwright/loop-harness.mdanddocs/loopwright/quality-gate.mdare thestyle reference.
Blocked by
Nothing.