Consolidate local state under one ignored local/ root - #22
Conversation
`memory/` and `credentials/` were two separate gitignored roots, and a user's own or overriding app card had nowhere to live at all. Move both under `local/` and add `local/apps/`, so one ignored root holds everything the user or the agent owns and the session-start `git pull --ff-only` can never conflict with it. - `memory/` -> `local/memory/`, `credentials/` -> `local/credentials/`, carrying the tracked README/TEMPLATE stubs across. - `local/apps/<platform>/<app-id>/CARD.md` is read after the shipped card at the same path and wins where they disagree; it may also be the only card, which is where private and internal apps live. Cards are found by path, not a registry, so a local card needs no `apps/index.md` entry. - One `.gitignore` block replaces two. The pre-consolidation `memory/` and `credentials/` paths stay ignored so upgrading cannot expose or commit content that has not been moved yet. - Retarget every path reference: `AGENTS.md`, `README.md`, `UPDATE.md`, `install.md`, `apps/index.md`, both `core/` guides, both platform guides. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The loading model lists every file `AGENTS.md` routes to. The user's own card was missing from it, so add the one precedence rule and nothing else. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
38f9af4 to
5f8c364
Compare
| ``` | ||
|
|
||
| Both root paths stay git-ignored until you remove them, so an upgrade cannot | ||
| expose content you have not moved yet. |
There was a problem hiding this comment.
Remove the whole migrating part
| !credentials/TEMPLATE.md | ||
| # Pre-consolidation paths, kept ignored so upgrading cannot expose or commit | ||
| # existing content. Safe to drop once you have moved them under local/. | ||
| memory/ |
There was a problem hiding this comment.
Finish migration into local in this PR. A feature per PR
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5f8c364b1c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Review: finish the migration in this PR rather than shipping a transition path alongside it. - Remove the `## Migrating` section from `local/README.md`. - Remove the pre-consolidation `memory/` and `credentials/` ignore lines. Removing those two lines also fixes a real bug they introduced rather than merely anchoring it. `memory/` and `credentials/` have no leading slash, so they matched a directory of that name at any depth — including the live `core/memory/` and `core/credentials/` trees. Any new file added under either would have been silently unaddable. Verified: `core/memory/new-guide.md` and `core/credentials/new-guide.md` are now addable, `local/` content is still ignored, and the four tracked stubs are still tracked. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Is it ready for review? |
|
I'd say so yes |
First of the smaller PRs replacing #15. This one does only the thing you asked
for four separate times there: one ignored root instead of several.
Change
memory/andcredentials/were two separate gitignored roots, and a user'sown or overriding app card had nowhere to live. Both move under
local/, andlocal/apps/is added.memory/→local/memory/,credentials/→local/credentials/, carryingthe tracked README/TEMPLATE stubs across.
.gitignoreblock replaces two.AGENTS.md,README.md,UPDATE.md,install.md,apps/index.md, bothcore/guides, both platform guides.14 files, +91/−36.
Migration note for whoever merges this
Not shipped in the repo, per review — recording it here instead. Anyone with an
existing clone has content at the old root paths, and this PR stops ignoring
them, so it shows up as untracked after the pull. Move it across once:
cp -an memory/. local/memory/ && cp -an credentials/. local/credentials/Then delete the originals. Worth a line in the release note, because
credentials/is the one where an accidentalgit add -Amatters.The one net-new thing
local/apps/<platform>/<app-id>/CARD.mdis read after the shipped card at thesame path and wins where they disagree, or is the only card, which is where
private and internal apps live. Cards are found by path rather than through a
registry, so a local card needs no
apps/index.mdentry.It is here because without it this PR is a rename with no gain — the overlay is
the reason to have
local/at all rather than just renaming two folders. Ifyou would rather judge it separately, say so and I will strip it to the move
alone; nothing else in the PR depends on it.
Verification
In two clones off a shared remote, with the user clone holding a card override,
a private-only card,
local/memory/, andlocal/credentials/:AGENTS.md—git pull --ff-onlyfast-forwarded, exit 0,git statusempty before andafter, all four private files intact, shipped card updated.
core/memory/new-guide.mdandcore/credentials/new-guide.mdare addable,local/content is stillignored, and the four tracked stubs are still tracked.
local/**rule exposes the content, so therule is load-bearing rather than incidentally true.
Deliberately not here
mobile-ux-primitives,debugging/blockers,learn-from-tutorial, and thecurator are all left out.
learn-from-tutorialand the curator I am droppingper your review. The other two need answers to questions you raised — the
per-screen read cost, and the
blockersvsrecoveryoverlap — so they shouldbe their own PRs where that is the discussion.
Branch is
feat/-named per your note on #15, and based on currentmain(
7d7ab48), not the old branch.