Summary
The README describes .nanopm/raw/ and .nanopm/wiki/ as Git-tracked, team-shared memory, but the installer appends the entire .nanopm/ directory to the consuming repository's .gitignore.
This was verified at commit 6f048a8d3e151ce72e7298d11a0d53614bb7e40b.
Reproduction
- Start in a Git repository whose
.gitignore does not already mention .nanopm/.
- Run the setup script from the repository directory:
curl -fsSL https://raw.githubusercontent.com/nmrtn/nanopm/6f048a8d3e151ce72e7298d11a0d53614bb7e40b/setup | bash
- Inspect the repository's
.gitignore.
- Generate NanoPM wiki/raw content and run
git status --short --ignored .nanopm.
Actual behavior
The installer adds:
# nanopm — local PM state (not for version control)
.nanopm/
Source: setup lines 446–466.
As a result, newly generated .nanopm/raw/ and .nanopm/wiki/ files are ignored and do not appear as normal candidates for commit. A teammate's fresh clone therefore cannot receive that memory through Git unless the team manually overrides the installer behavior or force-adds files. Repositories that already track these files are less affected because Git continues tracking known files, but the installed ignore rule remains contradictory and surprising.
Expected behavior
The default setup behavior should match the documented memory model:
.nanopm/raw/ and .nanopm/wiki/ remain trackable so git pull can share PM memory with the team.
- Only generated/runtime artifacts are ignored.
The README explicitly says the FTS index is rebuilt on a fresh clone and that both memory layers are tracked:
Suggested resolution
Replace the blanket .nanopm/ rule with selective ignores for confirmed generated or machine-local files—for example, .nanopm/search.db, which the README documents as rebuildable—while explicitly leaving .nanopm/raw/** and .nanopm/wiki/** trackable.
It would also be useful to add an installer test asserting that setup does not make the documented canonical memory layers invisible to Git.
If the intended product model has changed and .nanopm/ is now local-only, then the alternative is to update the README's Git/team-sharing claims and explain the supported sharing mechanism. The current installer and documentation should not prescribe opposite defaults.
Summary
The README describes
.nanopm/raw/and.nanopm/wiki/as Git-tracked, team-shared memory, but the installer appends the entire.nanopm/directory to the consuming repository's.gitignore.This was verified at commit
6f048a8d3e151ce72e7298d11a0d53614bb7e40b.Reproduction
.gitignoredoes not already mention.nanopm/.curl -fsSL https://raw.githubusercontent.com/nmrtn/nanopm/6f048a8d3e151ce72e7298d11a0d53614bb7e40b/setup | bash.gitignore.git status --short --ignored .nanopm.Actual behavior
The installer adds:
Source:
setuplines 446–466.As a result, newly generated
.nanopm/raw/and.nanopm/wiki/files are ignored and do not appear as normal candidates for commit. A teammate's fresh clone therefore cannot receive that memory through Git unless the team manually overrides the installer behavior or force-adds files. Repositories that already track these files are less affected because Git continues tracking known files, but the installed ignore rule remains contradictory and surprising.Expected behavior
The default setup behavior should match the documented memory model:
.nanopm/raw/and.nanopm/wiki/remain trackable sogit pullcan share PM memory with the team.The README explicitly says the FTS index is rebuilt on a fresh clone and that both memory layers are tracked:
Suggested resolution
Replace the blanket
.nanopm/rule with selective ignores for confirmed generated or machine-local files—for example,.nanopm/search.db, which the README documents as rebuildable—while explicitly leaving.nanopm/raw/**and.nanopm/wiki/**trackable.It would also be useful to add an installer test asserting that setup does not make the documented canonical memory layers invisible to Git.
If the intended product model has changed and
.nanopm/is now local-only, then the alternative is to update the README's Git/team-sharing claims and explain the supported sharing mechanism. The current installer and documentation should not prescribe opposite defaults.