# Inside the AI Coding Memory kit

Three views of the shared structure: records and collections, connected context, and the operating rules. This is the **AI Coding Memory 1.2.0** schema from the author's implementation, separate from the smaller portable starter in this playbook.

[Back to the playbook](https://hamedtaheri.com/playbook/v0.1.0/index.html) · [Architecture for your AI](https://hamedtaheri.com/playbook/v0.1.0/reference/kit-architecture.json) · [Portable starter](https://hamedtaheri.com/playbook/v0.1.0/kit/README.md)

## 1. The memory model

![Ten entity types mapped to collections, with typed fields and document categories](https://hamedtaheri.com/playbook/v0.1.0/figures/kit-memory-model.png)

An **entity type** says what a record represents and how to identify it. A **collection** defines that type's structured properties. Documents retain reusable guidance or longer supporting material. Typed relations connect records so a session can retrieve the context relevant to its work.

The source declares **10 entity types, 10 collections, 35 relations and six guidance documents**. Field types include text, options, number and boolean. Stable keys identify records; display titles can change. A Task Profile, for example, uses `task_key` (text), `status` (options), `owner_email` (text) and `created_at_ms` (number), alongside acceptance, verification and next-step fields.

The guidance documents use the platform's `guideline` and `playbook` content types. Specs, implementation plans and handoffs in the graph illustration are examples of supporting reference content. This kit registers **no additional custom document types**; those examples are not new entity types or new schema declarations.

## 2. Work becomes connected context

![A synthetic task graph linking people, work, sessions, decisions, messages and documents](https://hamedtaheri.com/playbook/v0.1.0/figures/kit-context-graph.png)

Read the arrows from their source to their target. A task is `part_of` a feature and `owned_by` a person. A session `worked_on` the task. A PR event `implements` it. A decision `applies_to` it, and a message is `regarding` it. A feature belongs to a project through `in_project`.

This is a synthetic example using eight declared relationships. It is not the full graph and contains no private work records. The dotted document link is a document attachment, distinct from a named relation between entity records.

Graph navigation answers “what context is connected to this record?” Complete questions such as “all open tasks in this project” use structured filters and full pagination. Core relations are mirrored by key properties so navigation and complete queries agree. Relationships are explicitly written and verified; the kit declares no automatic graph rules. A schema field by itself does not create an edge.

## 3. The operating rules

![Five guidelines and one retrieval playbook, with the recall-to-handoff loop](https://hamedtaheri.com/playbook/v0.1.0/figures/kit-operating-guidelines.png)

The six guidance documents explain how people and agents use the same records consistently:

| Document | Content type | What it covers |
|---|---|---|
| AI Coding Memory Protocol | Guideline | Recall, attribution, session checkpoints, handoffs and failure reporting |
| Identifier Standard | Guideline | Exact stable keys, typed identity and duplicate avoidance |
| Work Lifecycle Standard | Guideline | Accepted work, status transitions and completion evidence |
| Graph Linking Standard | Guideline | Declared relations, arrow direction, mirrored fields and verified links |
| Write Safety and Concurrency | Guideline | Read before writing, preserve changed state, verify writes and report failures |
| Retrieval Playbook | Playbook | Complete work lists, focused context, decisions, errors, handoffs and messages |

These are guidance documents, not an automatic enforcement engine. Local authorization governs each action. The current queue's write/wait/re-read claims do not establish atomic exclusivity across coordinators. The portable local adapter's conditional-update exercise has a different contract; production backends need their own qualification.

## Entity and collection catalog

| Entity type | Stable key field | Collection |
|---|---|---|
| `person` | `email` | Person Profile |
| `project` | `project_key` | Project Profile |
| `feature` | `feature_key` | Feature Profile |
| `task` | `task_key` | Task Profile |
| `decision` | `decision_key` | Decision Record |
| `inquiry` | `inquiry_key` | Inquiry Record |
| `error` | `error_key` | Error Record |
| `event` | `event_key` | Event Record |
| `ai_session` | `session_key` | AI Session Record |
| `message` | `message_key` | Message Record |

Events represent identifiable occurrences such as PRs, commits, CI runs, deploys and releases. These are event kinds, not separate entity types in this kit. Inquiries cover proposals, hypotheses and questions. AI Session uses the actual type name `ai_session`; the portable starter's `session` is its own abstraction.

## Relation catalog

The catalog below preserves the source's allowed types, direction and cardinality. Where several source/target types appear, read the relation's guidance for the meaningful pairing: `duplicate_of`, for example, is same-type; `part_of` means task → feature or commit event → PR event. A single-valued relation is limited to one current target; it is not evidence of an atomic claim or lock.

| Relation | Allowed source types | Allowed target types | Current targets |
|---|---|---|---|
| `in_project` | feature, task, decision, inquiry, error, event, ai_session, message | project | One |
| `part_of` | task, event | feature, event | One |
| `subtask_of` | task | task | One |
| `owned_by` | task, feature, error, inquiry, project | person | One |
| `created_by_person` | task, feature, decision, inquiry, error | person | One |
| `decided_by` | decision | person | Many |
| `directed_to` | inquiry | person | Many |
| `performed_by` | event | person | One |
| `reviewed_by` | event | person | Many |
| `driven_by` | ai_session | person | One |
| `has_manager` | person | person | One |
| `contributes_to` | person | project | Many |
| `blocked_by` | task, feature | task, feature, inquiry, error | Many |
| `depends_on` | feature | feature | Many |
| `duplicate_of` | task, error, inquiry | task, error, inquiry | One |
| `follows_up` | task | task, error, decision | Many |
| `related_to` | task, feature | task, feature | Many |
| `implements` | event | task, feature | Many |
| `fixes` | event | error | Many |
| `includes` | event | event | Many |
| `ships` | event | task, feature | Many |
| `rolls_back` | event | event | One |
| `seen_in` | error | task, feature, event, ai_session | Many |
| `introduced_by` | error | event | One |
| `tracked_by` | error | task | Many |
| `supersedes` | decision | decision | Many |
| `applies_to` | decision | feature, task, project | Many |
| `resolves` | decision, task, event | inquiry | Many |
| `concerns` | inquiry | task, feature, error, decision, event | One |
| `worked_on` | ai_session | task, feature, error, decision, inquiry, event, message | Many |
| `continues` | ai_session | ai_session | One |
| `sent_by` | message | person | One |
| `sent_to` | message | person | One |
| `replies_to` | message | message | One |
| `regarding` | message | task, feature, error, decision, inquiry, event | Many |

## Source and adoption

The [machine-readable map](https://hamedtaheri.com/playbook/v0.1.0/reference/kit-architecture.json) includes all entity/collection mappings, property names and types, relation definitions and guidance-document names. It excludes private records, identifiers, messages, credentials and transcripts.

Source: `src/modules/actions/seed-data/kits/ai-coding-memory/kit.json` at commit `48d788a0be3f0a94384ceb9c5939ad484db45e99`, inspected October 14, 2026. The live Graph Linking Standard was also checked for arrow direction and the distinction between graph navigation and complete filtered lists. Schema counts describe this repository snapshot, not a receipt proving a particular live organization's installation.

The downloadable [portable starter](https://hamedtaheri.com/playbook/v0.1.0/kit/README.md) demonstrates local record and claim mechanics. It does not install this full production schema, semantically retrieve documents or enforce hosted permissions. Map the full model to the adopter's actual collections, native document types, authorities and concurrency contracts before relying on it.
