Three orthogonal axes decompose all HAAK activity: method (what you do), domain (where and for whom), and engagement (toward what end). Within axes, things inherit — downward, monotonically. Across axes, things compose — a work point is the intersection of one position on each axis. This grammar structures the entire system.
#Intuition
Every piece of work answers three questions:
- What are you doing? — reviewing, searching, writing, sweeping (the method)
- In what context? — the mainen lab, for a journal, on HAAK itself (the domain)
- Toward what end? — the face-states manuscript, the INDP admissions (the engagement)
These are orthogonal. The same method (review) applies in different domains (my lab, an external journal) on different engagements (the shadow-ecosystem paper, a grant). Changing one doesn't force a change in the others.
#Method axis — what you do
Two graph structures over the same nodes.
#The level hierarchy
HAAK's process stack arranges knowledge by abstraction:
foundations → architecture → policies → methods → skills
A refinable total order: new levels can be inserted between any two adjacent elements. The current five are one instantiation — if we need "conventions" between policies and methods, we insert it. Float ranks make insertion trivial.
Inheritance is downward. Each level constrains those below. Foundations inform architecture; architecture informs policies; policies constrain methods; methods specify what skills execute. Transitive: a method cannot violate a policy's parent architecture decision.
| Level | Contains | Role |
|---|---|---|
| Foundations | Conceptual positions | Why the system exists |
| Architecture | Structural decisions | How it's built |
| Policies | Governance constraints | What must be true |
| Methods | Documented procedures | What agents do |
| Skills | Executable primitives | What agents run |
#The composition graph
Methods also compose laterally. Review invokes search; search invokes persona; persona invokes review. A directed graph G_M with labeled edges (step, reason). Cycles exist — the composition graph is not a DAG. Termination is by convergence or depth limit, not by structure.
Why two structures? The hierarchy governs authority (who constrains whom). The composition graph governs operation (who invokes whom). A method composes peers operationally while being constrained by policies above. These are distinct relationships: hierarchy is vertical, composition is lateral.
#Domain axis — where you work
A domain is a scope — an organizational, topical, or disciplinary context where specific constraints, resources, and quality criteria apply.
#Domain kinds
| Kind | What it scopes | Examples |
|---|---|---|
| Organizational | Where the work lives socially | mainen-lab, champalimaud, cosyne |
| Topical | What the work is about | face-perception, serotonin, peer-review-reform |
| Disciplinary | What field's standards apply | neuroscience, AI/ML, science-of-science |
| Meta | Work on HAAK itself | haak-design, haak-infrastructure |
#Graph structure — a rooted forest
Domains form a disjoint union of rooted trees. Each tree has a root category (organizational, topical, ...). Nodes within a tree are related by subsumption: bhatt-collab ⊂ mainen-lab. Trees are independent — no subsumption between mainen-lab and neuroscience. Cross-tree intersection happens only through cross-axis composition.
Why a forest, not a lattice? Each domain has exactly one parent within its tree, giving unique inheritance paths. A collaboration spanning two labs composes domains from different trees (or is an engagement across multiple domain scopes), rather than sitting under both.
#What a domain provides
Not just constraints — a domain scopes three things:
| Provides | Example |
|---|---|
| Constraints (policies) | mainen-lab → data-sharing requirements |
| Resources (tools, context, personas) | neuroscience → relevant persona pool |
| Quality criteria (what "good" means here) | AI/ML → reproducibility standards |
#Engagement axis — work over time
An engagement is a sustained campaign toward a goal. It corresponds to what HAAK calls a project — a manuscript, a review cycle, a grant proposal, an admissions round.
#Phase graphs
An engagement's phases form a directed graph with cycles. The cycle review → revise → submit → review may execute multiple times. Termination is by external decision (accept, reject, withdraw), not by graph structure. A particular execution traces a walk through the phase graph — revisiting nodes is expected.
#Engagement hierarchy
Engagements nest. A "face-states research program" contains sub-engagements: literature review, drafting, R1, revision, R2. Each sub-engagement inherits the parent's domain scope and adds its own phase structure.
#Engagements vs. methods
A method is what you do — stateless, reusable, defined once. An engagement is the doing of it — stateful, particular, tied to time and context. The review method exists once; each manuscript review is an engagement that instantiates that method in a domain.
#Inheritance
Inheritance flows strictly within a single axis. There is no cross-axis inheritance.
- Method axis: downward through levels. Foundations → architecture → policies → methods → skills. Laterally, within the composition graph, domain sets union.
- Domain axis: downward through the tree. A child inherits every constraint, resource, and quality criterion of its parent. Monotonic — constraint sets only grow.
- Engagement axis: parent to child. A sub-engagement inherits its parent's domain set.
Inheritance is not overriding. Unlike OOP, a child cannot override a parent constraint. Constraints accumulate. To relax a constraint, operate in a different domain.
#Composition — the work point
Composition is across axes. A concrete unit of work — a work point — is the intersection:
work point = method × domain × engagement
| Work point | Method | Domain | Engagement |
|---|---|---|---|
| Review Araújo's paper | review | mainen-lab ∩ neuroscience | rv-araujo-dopamine |
| Sweep architecture indices | sweep | haak-design | haak-infrastructure |
| Write grant rebuttal | write | mainen-lab ∩ neuroscience | pr-gong-fct |
#Governance at a work point
The constraint set combines by union:
- Method constraints — policies from the method's
domains:declarations - Domain constraints — policies from each active domain, including inherited ancestor policies
- Engagement constraints — engagement-specific rules (deadlines, format, journal guidelines)
When constraints tension, the PI resolves (per the constitution).
#Types and tokens
Each axis admits a type/token distinction with characteristic persistence:
| Axis | Type example | Token example | Persistence |
|---|---|---|---|
| Method | review (the procedure) | This review at this work point | Transient — exists during execution |
| Domain | paper (the kind) | face-states (this paper) | Persistent — endures across engagements |
| Engagement | manuscript-lifecycle (the template) | ms-face-states (this manuscript) | Temporal — has lifecycle: proposed → active → completed → archived |
These persistence modes reflect ontological character: methods are activities, domains are contexts, engagements are campaigns.
What counts as creation vs. use: Starting a new review (instantiating a method token) is using the review type. Starting a new paper project (instantiating a domain token) is creating a persistent entity. The governance appropriate to each differs because persistence differs.
#Where it lives in HAAK
| Axis | Location | Representation |
|---|---|---|
| Method | patterns/ (foundations → architecture → policies → methods); .claude/skills/ | Level hierarchy = directory structure; composition = domains: frontmatter |
| Domain | patterns/policies/01-constitution.md § domains | Domain tags in frontmatter; forest implicit (not yet reified as tree) |
| Engagement | projects/ (each directory = an engagement) | Phase graph implicit in directory structure; lifecycle = status: frontmatter |
What's reified vs. implicit: Method composition is reified (15-method-composability.md). Domain hierarchy and engagement phases are implicit — the three-axis alignment plan (strategy/) addresses this gap.
#Full formal treatment
The complete formalization — planning sketches, type definitions, and graph construction code — is preserved in v1/14-three-axis-model.md. This document states the principles; the v1 document provides the mathematical detail and Python dataclass definitions.
haak · foundation · 2026-02-24 · zach + claude
Foundations 06 — The Three-Axis Model — 2026 — Zachary F. Mainen / HAAK