LIVING IS LEARNING / ENGINE
SCROLL TO INGEST

PROJECT H.

A longitudinal behavioural inference engine with cryptographic audit properties.

In plain terms: it watches how a person learns, through everyday conversation and the things they make, and builds a private, tamper-proof record of how they grow. No grades. No scores. The record is theirs.

Not “who should this child become?” but “what is this child already remembering?”

00 / PRIMER

What this is.

WHAT IT IS

A system that observes how one person learns, through everyday conversation and the things they make, and turns it into a private, verifiable record of how they grew. It runs today for one eleven-year-old, home-educated across two countries.

WHO IT IS FOR

Parents and educators who want a real account of a child's development instead of a report card. Developers and researchers who want the engine underneath it: open, forkable, and honest about its own uncertainty.

WHY IT EXISTS

A grade flattens a person into a number, and the number outlives the person it described. This measures richer things, holds them as narrative and evidence, and hands the whole record to the learner.

Quote-anchoredEvery signal is tied to something the learner actually said. No quote, no signal.
ReplayableGrowth is recomputed from an immutable log, so the same inputs always rebuild the same record.
Learner-ownedPrivate and exportable by design, signature-ready, and hers outright at eighteen.
HOW IT WORKS, IN NINE STEPS
01 / INGESTION
content_hash = sha256(transcript)
dedupe_key = sha256(raw payload)

One boundary. Everything hashes at the door.

Everything a learner says or makes enters here, and gets fingerprinted on the way in so it can never be quietly altered later.

02 / CANDIDATE DETECT

Forty small evidenced decisions. Not one giant guess.

Instead of one AI guessing at everything at once, many small judges each answer a single question, and only when the learner's own words prove it.

candidate-detect → per-tenet judges
direct quotes only
03 / SKILLS CLUSTERING

An open vocabulary, canonicalised by meaning.

Skills are not picked from a fixed list. The system names what it sees in the learner's own language, then merges the ones that mean the same thing.

Skills and values are living dimensions, not a fixed list. The engine names what it observes in the learner's own language, then collapses synonyms into canonical concepts, so persistence and perseverance become one node. A new concept mints as provisional and promotes to stable at three distinct observations. Embeddings run locally, in-process, 384 dimensions: nothing leaves the box.

canonicalise: d(u,v) < θ → merge

Design-spec canonicalisation: attach when cos(e_new, e_existing) ≥ 0.86, else mint provisional. As-built, an LLM matcher performs the collapse by meaning.

04 / TENET MEASUREMENT

25 tenets. Zero scores.

Twenty-five human qualities, followed over years. They surface as stories and evidence, never as a number, a grade or a ranking against anyone else.

01 Curiosity
02 Transfer
03 Self-Direction
04 Critical Thinking
05 Problem Solving
06 Agency
07 Resilience
08 Exploration
09 Discussion
10 Articulation
11 Connections
12 Expression
13 Creativity
14 Collaboration
15 Reflection
16 Integration
17 Capacity
18 Regulation
19 Embodiment
20 Relational Intelligence
21 Health
22 Media Literacy
23 Perceptual Intelligence
24 Accountability
25 Participation
decay.modelLIVE
05 / AUDIT

One root. Change a byte, break the proof.

The record can be proven untampered years later, the same way a bank or a browser proves a certificate, without anyone having to take it on trust.

transparency.logRFC 6962
leaf[00..15] = H(0x00 ∥ content_hash)
node = H(0x01 ∥ L ∥ R)
level 2 → 4 nodes
level 3 → 2 nodes
sth.root = a96ccc3e8c3e… · VERIFIED
RFC 6962 CT construction
leaf = H(0x00 ∥ h) · node = H(0x01 ∥ L ∥ R)
GET /api/anchor · signed 32-byte root
inclusion proofs verify offline
06 / SELF-SOVEREIGN

Hers for life. Verifiable offline, forever.

Learner-owned. Private. Exportable.

The learner holds the record, not a school or a company. It exports in open credential formats and can be checked by anyone, offline, with no account and no permission.

07 / ENGINE · PACK

The engine knows no tenet names.

The machinery and the philosophy are separate files. The engine measures whatever a config tells it to, so your values are a document you write, not code you fork.

packs/harper-home.yamlCONFIG-DRIVEN
# packs/harper-home.yaml, the live pack
# namespace publisher/pack@semver, forkOf mandatory
pack: harper-home
version: 1.0.0
forkOf: livinglearning/base-pack
seams: # all data, loaded at startup
extractor.template: judge prompt + indicators
extractor.instructions: per-tenet rules
tutor.persona: tone, banned moves
states.mapping: weight -> qualitative band
ethics.thresholds: stricter-only vs spec floor
integrity:
numeric_surfaces: rejected # engine-enforced
ZERO TENET NAMES IN THE ENGINE
08 / INFINITE FORK

One engine. Any philosophy.

One family's philosophy runs on it today. Anyone else's could: a forest school, an adult learning to paint again, a team onboarding. Same engine, different beliefs.

PACK REGISTRY · 1 LIVE · 7 ILLUSTRATIVE
harper-home
forest-school
adult-lifelong
civic-action
unschooling-core
montessori-adapt
team-onboarding
recovery-journal
09 / DISTRIBUTION

Bring your own pack.

sh · project-hSTANDBY

booting…