Skip to content

setup: installer ignores .nanopm/ despite Git-tracked team-memory docs #176

Description

@RickVM

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

  1. Start in a Git repository whose .gitignore does not already mention .nanopm/.
  2. Run the setup script from the repository directory:
    curl -fsSL https://raw.githubusercontent.com/nmrtn/nanopm/6f048a8d3e151ce72e7298d11a0d53614bb7e40b/setup | bash
  3. Inspect the repository's .gitignore.
  4. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions