Skip to content

CLAUDE.md says macros/ is the only submodule; there are two #62

Description

@dem-extra1

What is wrong

CLAUDE.md's "Working in this repo" section states:

Submodules: macros/ is the only git submodule (see .gitmodules).

There are two. .gitmodules currently reads:

[submodule "macros"]
	path = macros
	url = https://github.com/d-morrison/macros

[submodule ".ai-config"]
	path = .ai-config
	url = https://github.com/Morrison-Lab/ai-config

Confirmed independently by git submodule status, which lists both pins:

-28ca42082f30f9aba5f69f74070f270ee09b2dc8 .ai-config
-8ce5d0cfc70c4d62210ae54043d7437862904180 macros

The repository layout section has the same gap one level up --- it lists
macros/ as "a git submodule for shortcode/macro definitions" and does not
mention .ai-config at all.

Why it matters

CLAUDE.md is auto-loaded into every session working this repo, so the claim
is read as current fact by every agent that touches it, and it is wrong in the
direction that causes silent damage: a session that believes there is one
submodule will not think to init, check, or preserve the other.

.ai-config is not incidental. It is load-bearing in three places:

  • chapters/pr-workflow-with-agents.qmd is built from six
    {{< include ../.ai-config/shared/workflow/*.md >}} directives --- the
    chapter's own content is three lines of intro plus six headings, and it is in
    the website sidebar (_quarto-website.yml:47). Removing or failing to check
    out the submodule hard-fails that chapter's render.
  • .github/workflows/bump-ai-config.yml exists solely to auto-bump the pin.
  • .github/workflows/claude-code-review.yml:56 already carries the correct
    count in a comment ("This repo vendors two submodules (macros, .ai-config)"),
    so the repository contradicts itself between two files.

Suggested fix

Update both spots in CLAUDE.md:

  1. "Working in this repo" --- name both submodules rather than asserting a
    count, so a third one cannot silently falsify the sentence again. Per
    avoid-hardcoding-external-data,
    prefer pointing at .gitmodules over restating an enumeration of it.
  2. "Repository layout" --- add a .ai-config/ entry noting it supplies the
    pr-workflow-with-agents.qmd includes.

Worth stating in the same edit that git submodule update --init --recursive
is required for that chapter to render, since the current text mentions the
command but attaches it only to macros/.

Provenance

Noticed 2026-08-17 while scoping a request to remove the .ai-config
submodule. The request was withdrawn, so the submodule stays and this doc
defect stands on its own. Filed rather than folded in, per
dont-incur-technical-debt's
authorship-not-adjacency bound --- the stale line predates this session and no
diff of mine touches it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions