Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/DISCUSSION_TEMPLATE/general.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ body:
- type: markdown
attributes:
value: |
Use General for open-ended conversation about ChatGPT Operational Memory that does not fit Q&A, Ideas, or Show and tell.
Use General for open-ended conversation about Operational Memory that does not fit Q&A, Ideas, or Show and tell.
Do not post secrets, credentials, private repository contents, or sensitive personal information.
- type: textarea
id: topic
Expand Down
2 changes: 1 addition & 1 deletion .github/DISCUSSION_TEMPLATE/show-and-tell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ body:
- type: markdown
attributes:
value: |
Share how you are using ChatGPT Operational Memory, what you changed, or what you learned. Please keep examples sanitized.
Share how you are using Operational Memory with ChatGPT, what you changed, or what you learned. Please keep examples sanitized.
- type: textarea
id: use_case
attributes:
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Upstream project support and Discussions
url: https://github.com/referencefield/chatgpt-operational-memory/discussions
url: https://github.com/referencefield/operational-memory/discussions
about: Use the public upstream Discussions for open-ended questions, experiences, and ideas that are not yet actionable issues. This link intentionally points outside a private template copy.
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributing

Thank you for helping improve ChatGPT Operational Memory.
Thank you for helping improve Operational Memory.

The project is intentionally narrow: a low-infrastructure, lay-user-friendly way to give ChatGPT explicit, user-owned operational memory in GitHub without turning the repository into an uncontrolled knowledge base or requiring an agent framework.

Expand Down
36 changes: 36 additions & 0 deletions DISCLAIMER.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Disclaimer

Operational Memory is an independent open-source project created by **Reference Field, Inc.** It is not an OpenAI or GitHub product, and Reference Field, Inc. is not affiliated with, sponsored by, endorsed by, or acting on behalf of OpenAI or GitHub.

OpenAI, ChatGPT, Codex, GitHub, and other third-party names and marks belong to their respective owners. References to third-party products and services in this repository are descriptive only.

## No guarantee of AI behavior or continuity

This project provides a repository structure, operating instructions, and validation tools intended to improve inspectable continuity for ongoing AI-assisted work. It does not guarantee that ChatGPT, Codex, another model, a plugin, an app, or an integration will retrieve, interpret, route, save, preserve, update, or recover information correctly, completely, consistently, or at all.

Model behavior and third-party product behavior can change. Features, permissions, APIs, integrations, interfaces, pricing, availability, and terms may also change independently of Reference Field, Inc.

## Not a security system or backup guarantee

Operational Memory is not a security boundary, credential manager, records-management system, compliance system, disaster-recovery service, or guaranteed backup system.

Private repositories, scoped permissions, branch protection, write verification, structural validation, and other safeguards described here can reduce particular risks but do not eliminate security, privacy, data-loss, access, synchronization, model-error, or third-party-service risks.

Do not store passwords, access tokens, private keys, recovery codes, full financial credentials, or other secrets in an Operational Memory repository.

## User responsibility

Users remain responsible for:

- deciding what information is appropriate to store;
- repository visibility and access permissions;
- maintaining independent backups when loss would be material;
- reviewing consequential AI-generated conclusions and changes;
- complying with laws, contracts, confidentiality obligations, organizational policies, and third-party terms that apply to their use;
- deciding whether this project is suitable for a particular personal, professional, regulated, safety-critical, or high-consequence use.

Nothing in this repository is legal, financial, medical, security, compliance, or other professional advice.

## License controls

The project is distributed under the MIT License. The warranty disclaimer and limitation-of-liability terms in [`LICENSE`](LICENSE) apply to the software and associated documentation. This file is intended to clarify practical boundaries and third-party independence, not replace or narrow the MIT License.
3 changes: 2 additions & 1 deletion PROTOCOL.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ front_door: START_HERE.md

template_source:
repository_id: 1354330020
repository: referencefield/chatgpt-operational-memory
repository: referencefield/operational-memory
owner_name_runtime_resolved: true
repository_name_part_of_protocol: false
unresolved_repository_id_fails_closed: true
Expand Down Expand Up @@ -90,6 +90,7 @@ human_docs:
example: EXAMPLE.md
operations: OPERATIONS.md
security: SECURITY.md
disclaimer: DISCLAIMER.md
migrations: MIGRATIONS.md
evals: EVALS.md
eval_results: EVAL_RESULTS.md
Expand Down
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
# ChatGPT Operational Memory
# Operational Memory

A low-infrastructure GitHub template for giving ChatGPT durable, user-owned working state across conversations: current state, decisions, durable knowledge, working preferences, routed projects, and cross-repository continuity.

The goal is not to make ChatGPT remember everything. It is to keep the smaller set of information that genuinely needs to survive a conversation somewhere you can inspect, correct, version, and own.

> **A portable continuity layer for serious ongoing ChatGPT work.**

Operational Memory is an independent open-source project created by **Reference Field, Inc.** It is not an OpenAI or GitHub product and is not sponsored by or endorsed by either company. See [`DISCLAIMER.md`](DISCLAIMER.md) for practical boundaries and third-party independence.

**Supported release baseline:** a **paid ChatGPT plan** plus the `@GitHub` plugin with repository write actions. Free ChatGPT accounts are not supported by this release. A paid plan alone does not guarantee that the required plugin/actions are available on every account, region, workspace, or surface, so setup verifies the actual capability.

Not sure whether this is worth installing? Read **[`WHAT_TO_EXPECT.md`](WHAT_TO_EXPECT.md)** first. It is the short human-facing description of what should feel different in practice.
Expand All @@ -16,7 +18,7 @@ You only need to do this once. You do **not** need Git expertise, a terminal, or

### 1. Create

[**Create my private memory repository**](https://github.com/new?owner=%40me&template_owner=referencefield&template_name=chatgpt-operational-memory&visibility=private)
[**Create my private memory repository**](https://github.com/new?owner=%40me&template_owner=referencefield&template_name=operational-memory&visibility=private)

GitHub should open a new-repository form using this template with **Private** preselected. Choose any repository name, visibly confirm **Private**, and create it.

Expand Down Expand Up @@ -238,7 +240,7 @@ A private GitHub repository is private on GitHub, but content retrieved into Cha

Git history is useful recovery evidence but is not an independent backup of the GitHub account/repository itself. If losing the operational-memory repository would be materially costly, keep an independent clone/archive using a backup practice you trust.

See [`SECURITY.md`](SECURITY.md) for details.
See [`SECURITY.md`](SECURITY.md) for details and [`DISCLAIMER.md`](DISCLAIMER.md) for project and third-party boundaries.

## Structural validation and behavioral evals

Expand Down Expand Up @@ -273,6 +275,7 @@ See [`CONTRIBUTING.md`](CONTRIBUTING.md).
- `AGENTS.md` — Codex bootloader
- `OPERATIONS.md` — project creation, write-sets, health, closeout, recovery, maintenance
- `SECURITY.md` — privacy, secrets, recovery boundaries, optional Git hardening
- `DISCLAIMER.md` — project independence, warranty/reliability boundaries, and user responsibility
- `MIGRATIONS.md` — release/update rules and controlled release cleanup
- `EXAMPLE.md` — fictional worked example
- `EVALS.md` — adversarial behavioral scenarios
Expand Down Expand Up @@ -302,6 +305,6 @@ This is not an infallible memory system, objective source of truth, deterministi

It cannot know about changes that were never recorded, guarantee automatic plugin invocation, guarantee that a generic companion will dominate stronger user-provided guidance, or guarantee future product behavior.

Licensed under the MIT License. See [`LICENSE`](LICENSE).
Licensed under the MIT License. See [`LICENSE`](LICENSE). Additional practical limitations and third-party independence are described in [`DISCLAIMER.md`](DISCLAIMER.md).

Created by **Reference Field, Inc.** · https://referencefield.com · contact@referencefield.com
2 changes: 1 addition & 1 deletion SETUP.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ You do **not** need to know Git, use a terminal, understand repository IDs, or e

### 1. Create your private memory repository

[**Create my private memory repository**](https://github.com/new?owner=%40me&template_owner=referencefield&template_name=chatgpt-operational-memory&visibility=private)
[**Create my private memory repository**](https://github.com/new?owner=%40me&template_owner=referencefield&template_name=operational-memory&visibility=private)

GitHub should open the new-repository form with this template selected and **Private** preselected. Choose any repository name you want, visibly confirm **Private**, then create it.

Expand Down
2 changes: 1 addition & 1 deletion WHAT_TO_EXPECT.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# What to Expect

This page is for the person deciding whether ChatGPT Operational Memory is worth installing.
This page is for the person deciding whether Operational Memory is worth installing.

## Short version

Expand Down
27 changes: 26 additions & 1 deletion tools/validate_protocol.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
"""Advisory structural validator for ChatGPT Operational Memory.
"""Advisory structural validator for Operational Memory.

This intentionally checks only machine-verifiable repository invariants.
Semantic questions remain part of the ChatGPT health check described in OPERATIONS.md.
Expand All @@ -22,6 +22,8 @@
ROOT = Path(__file__).resolve().parents[1]
ERRORS: list[str] = []
WARNINGS: list[str] = []
LEGACY_REPOSITORY_SLUG = "chatgpt" + "-operational-memory"
LEGACY_PROJECT_NAME = "ChatGPT" + " Operational Memory"


def error(message: str) -> None:
Expand Down Expand Up @@ -170,6 +172,27 @@ def budget_bytes(path: str, limit: int, label: str) -> None:
warn(f"soft budget crossed: {label} is {target.stat().st_size} bytes > {limit}")


def check_legacy_project_naming() -> None:
forbidden = (
"referencefield/" + LEGACY_REPOSITORY_SLUG,
"template_name=" + LEGACY_REPOSITORY_SLUG,
LEGACY_PROJECT_NAME,
)
text_suffixes = {".md", ".yaml", ".yml", ".py"}
for path in ROOT.rglob("*"):
if not path.is_file() or ".git" in path.parts:
continue
if path.suffix.lower() not in text_suffixes:
continue
text = read_text(path)
for term in forbidden:
if term in text:
error(
f"legacy project/repository naming remains in {path.relative_to(ROOT)}"
)
break


def load_manifest() -> dict:
manifest_path = require_file("PROTOCOL.yaml", "protocol manifest")
if not manifest_path.is_file():
Expand Down Expand Up @@ -212,6 +235,8 @@ def main() -> int:
print_results()
return 1

check_legacy_project_naming()

version = str(manifest.get("protocol_version", "")).strip()
if not version:
error("PROTOCOL.yaml missing protocol_version")
Expand Down