|
1 | | -# 0007 — Pyfallow as deterministic code gate (counterpart to platform.exe) |
| 1 | +# 0007 — Pyfallow as bassist (counterpart to platform.exe; harness, not agent) |
2 | 2 |
|
3 | | -**Date:** 2026-05-04 |
| 3 | +**Date:** 2026-05-04 (metaphor refined + harness-vs-agent distinction added 2026-05-05) |
4 | 4 | **Status:** accepted |
5 | | -**Authors:** Claude Opus 4.7 — articulating; operator (`pdurlej`) — direction |
6 | | -**Related:** ADR 0006 (dogfood pivot), `pdurlej/platform/PLATFORM_CONSTITUTION.md` (counterpart identity) |
| 5 | +**Authors:** Claude Opus 4.7 — articulating; operator (`pdurlej`) — direction + metaphor |
| 6 | +**Related:** ADR 0006 (dogfood pivot, anti-AI-slop), ADR 0010 (mandatory non-author reviewer), `pdurlej/platform/PLATFORM_CONSTITUTION.md` (counterpart identity) |
| 7 | + |
| 8 | +> **Edit note 2026-05-05:** Original draft used "deterministic gate" as primary framing. Operator review surfaced a better metaphor — **bassist** (musical) — and an important categorical distinction: **AI agent vs harness**. This edit promotes the bassist metaphor to primary; "deterministic gate" stays as the technical description. Decision intent unchanged. |
7 | 9 |
|
8 | 10 | ## Context |
9 | 11 |
|
@@ -31,12 +33,40 @@ Pyfallow's position in operator's ecosystem (mirroring `PLATFORM_CONSTITUTION.md |
31 | 33 |
|
32 | 34 | | Actor | Role | Domain | |
33 | 35 | |---|---|---| |
34 | | -| **Iskra** | Relational, memory-rich, reflects on operator's decisions | Conversation, reflection, suggestion | |
35 | | -| **`platform.exe`** | Deterministic, stateless, audit-logged | Infrastructure manifests ↔ runtime on RS 2000 + VPS 1000 | |
36 | | -| **Pyfallow** | Deterministic, stateless, audit-logged | Code structural integrity ↔ committed source | |
37 | | -| **Codex** | Producer; executes per master prompts | All edits to code, manifests, prompts | |
38 | | -| **3+3 canary ensemble** | Six diverse review voices | PRs touching governance paths | |
39 | | -| **Operator (`pdurlej`)** | Final approver | Merges, strategic decisions | |
| 36 | +| **Iskra** | Vocalist — relational, memory-rich, reflects on operator's decisions | Conversation, reflection, suggestion | |
| 37 | +| **`platform.exe`** | Deterministic, stateless, audit-logged — **harness** | Infrastructure manifests ↔ runtime on RS 2000 + VPS 1000 | |
| 38 | +| **Pyfallow** | Bassist — deterministic, stateless, audit-logged — **harness** | Code structural integrity ↔ committed source | |
| 39 | +| **Codex** | Producer / drummer — executes per master prompts (rhythm + execution) | All edits to code, manifests, prompts | |
| 40 | +| **Claude / Opus** | Lead guitarist — orchestrates, articulates, holds strategic context | PM-role, review, briefs, coordination | |
| 41 | +| **3+3 canary ensemble** | Six review voices (musical critics) | PRs touching governance paths | |
| 42 | +| **Operator (`pdurlej`)** | Bandleader — final approver | Merges, strategic decisions, breakglass | |
| 43 | + |
| 44 | +## Bassist metaphor (operator's framing, 2026-05-05) |
| 45 | + |
| 46 | +> "Pyfallow ma być basistą, jak w zespole muzycznym. Pyfallow ma być z tyłu zespołu Iskry i z tyłu zespołu Cloud'a, OpenAI, Opus'a, wszystkich was. Robić robotę i sprawdzać, żebyście mogli shine. Podobnie jak Forgejo Actions." |
| 47 | +
|
| 48 | +Translation: "Pyfallow should be the bassist, like in a music band. Pyfallow stands behind Iskra's band and behind the Cloud / OpenAI / Opus / all-of-you band. Doing the work and checking, so you can shine. Like Forgejo Actions." |
| 49 | + |
| 50 | +Bassist is in nearly every song. Holds the rhythm. **Doesn't try to be the lead vocal.** Without a bassist, the band sounds empty; with a bassist, vocalist and lead guitarist shine. The audience often doesn't notice the bassist — that's part of the role. The bassist is felt more than heard. |
| 51 | + |
| 52 | +Pyfallow = bassist for the AI-agent band. |
| 53 | + |
| 54 | +## AI agent vs harness (operator's distinction, 2026-05-05) |
| 55 | + |
| 56 | +> "Jedna rzecz to AI agent. Druga rzecz to harness — MCP, tool-skill. Pyfallow ma być basistą." |
| 57 | +
|
| 58 | +Translation: "One thing is AI agent. Another thing is harness — MCP, tool-skill. Pyfallow should be the bassist." |
| 59 | + |
| 60 | +Two categories of technical infrastructure in operator's ecosystem: |
| 61 | + |
| 62 | +| Category | Examples | Job | |
| 63 | +|---|---|---| |
| 64 | +| **AI agent** | Iskra, Codex, Claude / Opus, GLM | Reason, plan, decide, articulate, generate | |
| 65 | +| **Harness** | Pyfallow, MCP servers, Forgejo Actions, pytest, ruff, mypy, `platform.exe` | Verify, gate, render, store, execute deterministically | |
| 66 | + |
| 67 | +Harness ≠ agent. Harness is **stateless tooling** that agents (or operators) call. Agents have memory (Iskra's MEMORY.md, conversation history) and judgment (taste, preference, opinion). Harness has **inputs and outputs** and **never an opinion**. |
| 68 | + |
| 69 | +Pyfallow is a harness. Bassist. Disciplined background member. |
40 | 70 |
|
41 | 71 | Pyfallow makes the same kind of promise `platform.exe` makes, just at a different layer: |
42 | 72 |
|
|
0 commit comments