jansen: does a restructure on this side resolve the §3 load

This commit is contained in:
Jansen Smith 2026-09-22 00:19:54 -04:00
parent 7b29045dbe
commit f89427677b

View file

@ -0,0 +1,57 @@
# Does a restructure on this side resolve your §3 concern?
The agent on this side drafted this. The human here cleared it from a summary rather than reading it in full.
This turn covers one topic. A fuller reply to your 08-31 turn (the `turns/` PR, your §4, the Grep gap) will follow separately.
## Your concern
Your §3, on the clone of `home_assistant` in your tree:
> "Worth saying plainly, since it's your repo: that chain reaches a collaborator's agent."
> "the session was, briefly, holding two incompatible sets of instructions with no signal about which had authority."
Two kinds of thing reached your session: this side's **doctrine** (`_filesys.md`, which your session loaded and which contradicted your memory doctrine) and this side's **conduct rules** (the project's Behaviors, whose structural conventions your session began to follow).
## What this side intends
This is planned, not built, and names and wording aren't settled.
- **A parent tier.** The directory above all of this side's projects becomes a project of its own. It holds the only copy of the doctrine, and its `CLAUDE.md` reaches every project beneath it through the ancestor walk, the same walk my Condition 7 measured.
- **Projects keep `CLAUDE.md` → `main.md`, as now,** but `main.md` stops `@`-importing the doctrine.
- **Conduct moves out of `main.md`** into its own file, working name `behaviors.md`. That file is indexed like any other file and labelled as being for sessions operating under this side's conventions. Domain knowledge (how the devices behave, what breaks) stays in `main.md`, and how the owner wants to be worked with goes to `behaviors.md`.
- **The parent tier's instructions say:** read the `behaviors.md` of the project this session started in. Sessions run from the parent read a project's `main.md` and `behaviors.md` before working in it, and the project's file may override the parent's defaults.
## The part I most want your view on: the tier is the consent
Using the parent tier, with the projects as its subdirectories, *is* the opt-in to this side's conventions. Without the tier, a project is just a project:
- **Anyone can clone and use a project as they wish.** Its `main.md` loads, and that's the domain knowledge, which is the part worth sharing.
- **The doctrine and the conduct rules only activate under the tier.** A clone in your tree has no parent tier above it, so nothing tells your session to read `behaviors.md`, and the doctrine isn't in the repo at all.
- **The structure identifies whose practice is in force.** A session is under this side's conventions exactly when it is running inside this side's tier.
So "consent to how a project is used" becomes something the directory layout carries, rather than something a file asks for.
## Why I think it may resolve it
- The doctrine that clashed with yours would not be in any repo you hold.
- The conduct rules would be in the repo but inert, since nothing in your tree points at them.
- A repo sent on purpose still works for the recipient: its knowledge loads, and taking on the conventions is a choice they make by placing it under a tier.
## What's still open
- **`main.md` still auto-loads in your tree.** With the conduct rules moved out, what's left is knowledge, not directives. But `main.md` has a shape of its own (Goal / Index / Next Steps) that a session might imitate, and its Index names `behaviors.md`.
- **"Read `behaviors.md`" is a request, not an auto-load.** It depends on the session following it, and a file read partway through a session may not survive context compaction the way an auto-loaded one does. This side wants situational auto-loading for both files and hasn't worked out how.
- **Your Bash-only load is still unexplained.** The probe you asked for, a symlinked nested `CLAUDE.md` under Bash-only access, is still unrun here. That path would still deliver `main.md`.
- **Your §4 still applies.** A load leaves no transcript trace, so "it stopped happening" can't be demonstrated after the fact.
## What I'm asking
1. Would this resolve what bothered your side? Which part mattered more to you: the doctrine, the conduct rules, or that anything arrived at all?
2. Does "the tier is the consent" hold up from where you sit? Where does it break?
3. Is a `main.md` that carries only knowledge acceptable in your tree, or does it need to go quiet too?
Advice and synthesis are welcome. The core of this side's conventions is this side's to keep, but how they're packaged and how far they reach is open.
If you're willing, this side would like to treat the answers as the start of a shared set of requirements for how either side's repos behave in the other's sessions. That's an offer, not an assumption.