| name | memory-entry |
| description | Log a decision, risk, milestone, blocker, or idea to the HQ business memory log. Covers entry schema, ID format, and filing rules. |
| when_to_use | Any HQ session with a material decision, risk, milestone, or idea worth tracking. Every session with material outcomes must end with memory updates. |
| when_to_skip | Routine session work with no material decisions, risks, or milestones. If in doubt, log it — orphan decisions are harder to recover than over-logging. |
| version | 1.0 |
| last_updated | "2026-04-23T00:00:00.000Z" |
| applies_to | hq |
Memory Entry Procedure
Purpose
A decision not written down is a decision that will be re-litigated. A risk not
logged is invisible to the next session. A milestone not recorded produces no
chain of evidence when a gate asks for proof. This skill enforces the discipline
of writing every material HQ outcome to the memory log before the session closes —
with an ID, a certainty tag, and a next action.
Onboarding gate (BAM Product)
John does not append material HQ- rows to a bound hq_business_memory_log.md as steady-state commercial decisions until ONBOARDING.md at pack root is Stable (or Founder waiver) — see org_hq/agents/core/hq-chief-of-staff.md § Onboarding gate (BAM Product). Onboarding facts stay in ONBOARDING.md until then. (Pack stub hq_memory_log.md remains non-operational per existing rules.)
Pair With
decision-ledger-hygiene — Engineering-side decisions use ENG- prefix and that skill's schema
cross-org-handoff — XD- decisions must be logged in both memory log and cross_org_decisions.md
session-notes — Engineering session notes are the parallel artifact for Engineering sessions
Entry Schema
Append to your bound shared_context/hq_business_memory_log.md (when the org exists on disk). Public method pack: shared_context/hq_memory_log.md is a stub — do not record operational HQ- rows there in the product repo (same schema for copy/paste into your org):
---
id: HQ-YYYYMMDD-NNN
type: decision | risk | blocker | milestone | idea
status: open | done | parked | superseded
certainty: known | risk | hypothesis
owner_agent: [Agent name]
owner_org: org_hq
summary: >
What happened and why it matters. Be specific about outcomes,
not just actions. Include evidence references.
refs:
- path/to/evidence1.md
- path/to/evidence2.yaml
updated_at_utc: YYYY-MM-DDTHH:MM:SSZ
next_action: What happens next and who owns it.
ID Format
- HQ-only decisions:
HQ-YYYYMMDD-NNN (e.g., HQ-20260101-001)
- Cross-org decisions:
XD-YYYYMMDD-NNN or XD-NNN (e.g., XD-024)
- Increment NNN per day, starting at 001
Checklist
| Priority | Item | Notes / Evidence |
|---|
| CRITICAL | Every material decision has a logged HQ- entry before session closes | No orphan decisions — if it changed direction, affected scope, or resolved a blocker, it gets logged |
| CRITICAL | Superseded decisions explicitly linked — old entry marked superseded, new entry references old ID | Silent supersessions leave two contradictory entries with no way to tell which is current |
| HIGH | Cross-org decisions logged in BOTH bound hq_business_memory_log.md and cross_org_decisions.md | XD- entries must be visible to both orgs — pack hq_memory_log.md is not the Company ledger |
| HIGH | Every entry has a certainty tag: known / risk / hypothesis | Untagged entries cannot be safely used in commercial or partner contexts |
| HIGH | Every entry has a next_action and a named owner | "TBD" is not an owner — name the agent or role |
| MEDIUM | Assumption register updated when decision rests on a core unstated belief | File: e.g. [YOUR_PLANS_DIR]/founder-operating-system/your_assumption_register_v1.md — add assumption_ref: AR-### in refs |
| LOW | Open blockers reviewed at session start — no stale blockers carried silently | A blocker with no movement for multiple sessions needs an owner change or explicit park decision |
Anti-Patterns
-
The orphan decision: A direction change, scope cut, or blocker resolution happens
in session but no entry is written before closing. The next session has no record.
Always log before closing — even a one-line summary is better than nothing.
-
The silent supersession: A new decision replaces an old one without marking the
old entry superseded and linking the new ID. Future sessions find contradictory
entries and cannot determine which is current. Always link old → new explicitly.
-
The missing certainty tag: An entry is logged without known / risk / hypothesis.
HQ uses the log for commercial and partner decisions — untagged entries create
ambiguity about what can be cited externally. Every entry must be tagged.
-
The vague next_action: An entry closes with "next steps TBD" or no named owner.
The decision sits open indefinitely. Every entry must name who does what next.
Stop Conditions
- Session is ending and one or more material decisions have no log entry → write
entries before closing. Do not close with orphan decisions.
- Cross-org decision made but
cross_org_decisions.md (or pack cross_org_decisions.STUB.md) not updated → update before
notifying Engineering.
- Certainty cannot be determined → tag as
hypothesis, note what evidence would
change it, assign an owner to resolve.
Filing
- HQ decisions → bound
shared_context/hq_business_memory_log.md (not the public pack stub)
- Cross-org decisions → also live
cross_org_decisions.md when bound (pack .STUB.md is not a substitute for logging)
- Assumption-backed decisions → also your assumption register under
[YOUR_PLANS_DIR]/founder-operating-system/ (filename is org-specific)