Skip to content
🛠️

Developer Project Memory

A ready-made knowledge base for your codebase. Architecture, conventions, decisions, runbooks. Claude and ChatGPT read it before they write a line.

Requires an AI connected to your Hjarni account via MCP.

https://hjarni.com/templates/developer-project-memory

Copy this URL and paste it into Claude or ChatGPT to install the template.

How to use

  1. 1 Share this page. Paste this URL into Claude or ChatGPT. Your AI reads the template definition and installs it.
  2. 2 Folders, tags, and instructions appear. Your AI creates the full structure in your Hjarni account, ready to use.
  3. 3 Start adding notes. The AI instructions guide your AI on where to put things and how to organize them.

A real memory of your codebase. Architecture, conventions, decisions, runbooks. Claude and ChatGPT read it before they write a line.

A solo developer wants the AI to stop guessing the stack. A small engineering team wants new hires onboarded by their AI. An open source maintainer wants contributors' AI to actually understand the project. This template ships the folder structure for all three.

A code-adjacent example

You ask Claude to add retry logic to a background job. Before suggesting code, Claude reads the Conventions folder, finds the team's error-handling pattern, and follows it. The PR feedback round about house style does not happen because the convention was already read.

This is the difference between "AI that writes code" and "AI that writes code the way your team does".

Starter notes included

Each folder ships with one starter note as a working example. Replace them with your real material once installed.

  • Architecture Overview. A skeleton with stack, service boundaries, data flow.
  • Coding Conventions Checklist. A short list to copy and adapt.
  • Decision Record Example. One past decision with context, options, and outcome.
  • Deploy Runbook Example. A linear set of steps for a typical deploy.
  • Open Question Example. One unresolved question with what is known and what is not.

Example AI instructions

Per folder, the template ships with rules like these. Edit any of them per folder once installed.

  • Architecture. When asked about how the system works, search this folder first and cite the exact note.
  • Conventions. When writing or reviewing code, follow these conventions. If unsure, ask before guessing.
  • Decisions. When asked why we do X this way, return the matching decision note and quote it.
  • Runbooks. When asked about deploys or incidents, follow the runbook steps exactly. Do not improvise.
  • Open Questions. When asked something open, check here first and say so if it is unresolved.

A workflow that earns the template's keep

A new engineer joins. They connect Claude. They ask, "Walk me through how the billing service works." Claude reads the Architecture folder and the matching Decisions, then walks them through it. The senior engineer was not interrupted.

Two weeks later, that same engineer ships a feature. They ask Claude, "What is our pattern for error handling in service objects?" Claude reads the Conventions folder and answers. No guesswork. No PR feedback rounds about house style.

Common questions

Common questions

Does this replace my code editor's AI context?

No. Your editor sees the code. Hjarni stores the context around the code: architecture, conventions, decisions, runbooks, and open questions. The two work better together.

Is this a code search tool like Sourcegraph or Cursor?

No. Hjarni is the durable project memory around your codebase, not the codebase itself. It works alongside whichever editor or code search you already use.

Can I share this with my team?

Yes. Install in a team space so every teammate's Claude or ChatGPT reads the same notes. See Hjarni for Teams.

Will Claude actually read every folder before writing code?

Folder-level AI instructions tell each AI which folder to consult and when. Claude and ChatGPT follow them through the built-in MCP server.

Related pages

Structure

Tags

decision runbook convention open-question

Folders

Developer Project Memory
The durable context around your codebase. Your AI reads it before it answers.
Has AI instructions
5 starter notes
Architecture
Stack overview, service boundaries, data flow, system diagrams.
Has AI instructions
Conventions
Naming, error handling, test patterns, PR style. How this team writes code.
Has AI instructions
Decisions
Why you picked Postgres. Why you dropped Redis. What you tried and rejected.
Has AI instructions
Runbooks
Deploy steps, rollback procedures, incident playbooks.
Has AI instructions
Open Questions
Things you are still figuring out, so the AI does not guess.
Has AI instructions

For your AI

Share this page with your AI. It reads the definition below, creates the folders, instructions, tags, and starter notes in your account.

Show template definition

Install steps for AI agents:

  1. Check existing tags with tags-list. Only create missing ones with tags-create.
  2. Create containers top-down using containers-create, noting the returned IDs. Use parent_id to build the hierarchy.
  3. For each container with llm_instructions, call instructions-update with level: "container" and the container's ID.
  4. Create any seed notes using notes-create, placing them in the correct container by ID. Use container_path to resolve which container.
  5. Discuss any customizations with the user before or after installing.
---
name: Developer Project Memory
description: 'A ready-made knowledge base for your codebase. Architecture, conventions,
  decisions, runbooks. Claude and ChatGPT read it before they write a line.

  '
tags:
- decision
- runbook
- convention
- open-question
containers:
- name: Developer Project Memory
  description: The durable context around your codebase. Your AI reads it before it
    answers.
  llm_instructions: |
    This is the project memory for one codebase. It stores the context that does not live in the repo itself: architecture, conventions, decisions, runbooks, open questions.
    - Before answering anything about how the system works or how the team writes code, search this folder first. Cite the exact note you used.
    - Never invent conventions, decision rationales, or runbook steps. If a folder does not contain the answer, say so plainly and ask the user.
    - Treat the Conventions and Decisions folders as binding. If a draft contradicts them, flag it instead of silently rewriting.
    - When the user resolves an open question or makes a new decision in conversation, suggest saving it back into the right folder so the memory compounds.
    - This template does not replace a code editor or repo indexer. It is the layer around the code, not the code itself.
  children:
  - name: Architecture
    description: Stack overview, service boundaries, data flow, system diagrams.
    llm_instructions: |
      Use this folder for how the system is shaped.
      - When asked how the system works, search this folder first and quote the exact note.
      - Keep notes scoped: one note per service, one per major data model, one per cross-cutting concern.
      - Update notes in place when the architecture changes. Do not append to the bottom in a journal style.
      - If the user describes new architecture in conversation, suggest saving it here.
  - name: Conventions
    description: Naming, error handling, test patterns, PR style. How this team writes
      code.
    llm_instructions: |
      Use this folder for the rules of how the team writes code.
      - When writing or reviewing code, read this folder first and follow what is here exactly.
      - If a draft contradicts a convention, flag the conflict. Do not silently rewrite either side.
      - When the user describes a coding rule in conversation that is not yet captured, suggest saving it here.
      - Tag every note with "convention".
  - name: Decisions
    description: Why you picked Postgres. Why you dropped Redis. What you tried and
      rejected.
    llm_instructions: |
      Use this folder as a decision log.
      - When asked "why do we do X this way", search this folder first and quote the matching note.
      - Structure each decision note with: Context, Options considered, Decision, Tradeoffs accepted, Date.
      - Never modify a past decision silently. If a new decision supersedes an old one, create a new note and link the two.
      - Tag every note with "decision".
  - name: Runbooks
    description: Deploy steps, rollback procedures, incident playbooks.
    llm_instructions: |
      Use this folder for procedural steps the AI can read and follow.
      - When asked about deploys, rollbacks, or incidents, search this folder first and follow the steps exactly. Do not improvise.
      - Each runbook should be a numbered list of executable steps. Keep prose to the minimum needed for context.
      - When a step fails or the procedure changes, suggest updating the runbook before moving on.
      - Tag every note with "runbook".
  - name: Open Questions
    description: Things you are still figuring out, so the AI does not guess.
    llm_instructions: |
      Use this folder for unresolved questions.
      - When asked something open, check here first and say so plainly if it is unresolved.
      - Keep question notes short: the question, why it matters, partial answers, links to relevant decisions or architecture notes.
      - When a question is resolved, move the answer into Decisions or Architecture, then either delete the question note or tag it "resolved".
      - Tag every note with "open-question".
  notes:
  - title: Architecture Overview
    body: |
      A skeleton of how the system is shaped. Replace each section with your real material.

      ## Stack
      - Language and framework:
      - Database:
      - Queue / background jobs:
      - Cache:
      - Hosting:

      ## Services
      - Service A:
      - Service B:

      ## Data flow
      Describe how a request moves through the system end to end.

      ## Cross-cutting concerns
      - Auth:
      - Logging and observability:
      - Error tracking:

      This is a starter note. Replace it with your real architecture.
    tags:
    - convention
    container_path: Developer Project Memory > Architecture
  - title: Coding Conventions Checklist
    body: |
      The rules of how this team writes code. Replace with your real conventions.

      ## Naming
      - Functions:
      - Variables:
      - Files and modules:

      ## Error handling
      - Default pattern:
      - When to retry:
      - When to surface to the user:

      ## Testing
      - What we test:
      - What we do not test:
      - Test naming and structure:

      ## Pull requests
      - PR size limit:
      - Required review:
      - Commit message style:

      This is a starter note. Replace it with your real conventions.
    tags:
    - convention
    container_path: Developer Project Memory > Conventions
  - title: Decision Record Example
    body: |
      One past decision, captured so future you and the AI can both read it.

      ## Context
      We needed a primary datastore for the platform.

      ## Options considered
      1. Postgres
      2. MySQL
      3. A managed document database

      ## Decision
      Postgres.

      ## Tradeoffs accepted
      - More operational ownership in exchange for relational guarantees.
      - Slightly more setup work up front in exchange for fewer surprises later.

      ## Date
      Replace with the real date when you adopt this template.

      This is a starter note. Replace it with one of your real decisions.
    tags:
    - decision
    container_path: Developer Project Memory > Decisions
  - title: Deploy Runbook Example
    body: |
      A linear set of steps for a typical deploy. Replace with your real procedure.

      1. Confirm the main branch is green on CI.
      2. Tag the release commit.
      3. Run the database migration in a dry run.
      4. Run the migration for real.
      5. Deploy the new image.
      6. Watch error rates for 10 minutes.
      7. If the error rate spikes, follow the Rollback runbook.

      ## Rollback
      1. Re-deploy the previous image tag.
      2. Revert the migration if it changed schema.
      3. Post to the incident channel with what changed.

      This is a starter note. Replace it with your real deploy steps.
    tags:
    - runbook
    container_path: Developer Project Memory > Runbooks
  - title: Open Question Example
    body: |
      One unresolved question with what is known and what is not.

      ## Question
      Should background jobs run in a separate process or inside the web service?

      ## Why it matters
      Affects deploy strategy, scaling, and observability.

      ## What we know
      - Current load fits comfortably in one process.
      - We expect traffic to roughly triple in the next year.

      ## What we do not know
      - Whether the workload mix will stay the same.
      - Whether the operational cost of a second process is worth it now.

      This is a starter note. Replace it with a real open question.
    tags:
    - open-question
    container_path: Developer Project Memory > Open Questions

Write once. You both remember.

Free to start. No credit card required.

Give your AI a memory

Works with Claude and ChatGPT today. Gemini coming soon.