@@ -4,9 +4,16 @@ Basic Memory CI turns meaningful GitHub delivery moments into durable
44` project_update ` notes in Basic Memory.
55
66GitHub records the mechanics: pull requests, workflow runs, SHAs, URLs, labels,
7- and timestamps. The agent reads those facts and writes a short synthesis of what
8- changed and why it matters. The Basic Memory CLI owns authentication, schema
9- guidance, idempotency, and publishing.
7+ changed files, commits, linked issues, and timestamps. The agent reads those
8+ facts and writes the delivery story: what problem was being addressed, why the
9+ fix solved it, what changed in the system, what complexity or cleanup came with
10+ it, and why future humans or agents should care. The Basic Memory CLI owns
11+ authentication, schema guidance, idempotency, and publishing.
12+
13+ The semantic layer is the point: GitHub can answer when something merged or
14+ deployed, but the project memory should answer later questions such as what
15+ problem was solved, what choices were made, what changed in the architecture,
16+ and what risks, cleanup, or follow-up work came with the change.
1017
1118The product voice is:
1219
@@ -31,7 +38,7 @@ Basic Memory API key.
3138## Setup CI/CD
3239
3340Use ` bm ci setup ` from the GitHub repository root. The command installs the
34- workflow/config/prompt files and seeds the Basic Memory schema notes.
41+ workflow/config/prompt/soul files and seeds the Basic Memory schema notes.
3542
3643For the common cloud path:
3744
@@ -51,12 +58,27 @@ than one workspace:
5158bm ci setup --project < project-name> --project-id < project-external-id> --cloud --yes
5259```
5360
61+ Setup does not overwrite existing schema notes by default. After upgrading Auto
62+ BM, refresh the installed schema guidance with either spelling:
63+
64+ ``` bash
65+ bm ci setup --project < project-name> --workspace < workspace-slug-or-id> --cloud --yes --refresh-schemas
66+ bm ci setup --project < project-name> --workspace < workspace-slug-or-id> --cloud --yes --update-schemas
67+ ```
68+
69+ The shorter aliases ` --refresh ` and ` --update ` are also accepted. Refresh keeps
70+ custom schema note paths when it finds existing notes, and only writes the
71+ canonical Auto BM schema content. If the generated workflow/config/prompt/soul
72+ files already exist, refresh leaves those files unchanged unless you also pass
73+ ` --force ` .
74+
5475Then review and commit the generated files:
5576
5677``` text
5778.github/workflows/basic-memory.yml
5879.github/basic-memory/config.yml
5980.github/basic-memory/memory-ci-capture.md
81+ .github/basic-memory/SOUL.md
6082```
6183
6284Add these GitHub repository secrets:
@@ -113,6 +135,11 @@ Installs the repository automation files:
113135- ` .github/workflows/basic-memory.yml`
114136- ` .github/basic-memory/config.yml`
115137- ` .github/basic-memory/memory-ci-capture.md`
138+ - ` .github/basic-memory/SOUL.md`
139+
140+ ` SOUL.md` is the editable repo-local voice and personality guide for the
141+ synthesis agent. It can make notes more candid, opinionated, warm, or terse, but
142+ it cannot override source facts, schema requirements, or the evidence standard.
116143
117144It also seeds the canonical Basic Memory schema notes when they do not already
118145exist :
@@ -121,21 +148,31 @@ exist:
121148- ` GitHubPullRequestUpdate`
122149- ` GitHubProductionDeployUpdate`
123150
151+ Use `--refresh-schemas` or `--update-schemas` when you want setup to update
152+ those schema notes instead of only creating missing ones.
153+
124154` bm ci collect`
125155
126156Reads the current GitHub event payload and normalizes it into
127157` ProjectUpdateContext` . This command decides whether the event is eligible.
128158Merged pull requests and configured successful production deploy workflow runs
129159are eligible. Routine CI runs, failed deploys, and unmerged PR closures are
130- no-ops. In v0, collection is intentionally limited to the GitHub event payload;
131- GitHub API enrichment for file lists, checks, reviews, or commit lists can be
132- added later without changing the publishing boundary.
160+ no-ops.
161+
162+ For merged pull requests, the generated workflow passes `GITHUB_TOKEN` to
163+ ` bm ci collect` so the context can include changed files, commit messages, and
164+ linked issue details. If `GITHUB_TOKEN` is unavailable, local collection still
165+ uses the event payload fields. If the token is present and GitHub API enrichment
166+ fails, the Auto BM workflow fails fast instead of publishing a weak note.
133167
134168` bm ci agent-schema`
135169
136170Writes the optional `AgentSynthesis` JSON schema used by the generated workflow
137171as a CI guardrail. This schema is not a Basic Memory domain schema and is not
138- committed by setup.
172+ committed by setup. The schema intentionally requires narrative fields such as
173+ ` story` , `problem_addressed`, `solution`, `system_impact`,
174+ ` components_changed` , `complexity_introduced`, and `refactors_or_removals` so
175+ the agent does more than fill out shallow buckets.
139176
140177` bm ci publish`
141178
@@ -180,7 +217,7 @@ project-updates/github/<owner>/<repo>/
180217
181218- `ProjectUpdateConfig` : non-secret repo configuration.
182219- `ProjectUpdateContext` : normalized immutable GitHub facts.
183- - `AgentSynthesis` : agent-authored summary fields.
220+ - `AgentSynthesis` : agent-authored narrative fields.
184221- `ProjectUpdateNote` : final Basic Memory note payload.
185222- workflow, prompt, and schema-note seed rendering.
186223
0 commit comments