Repair the two PROJECT-MAP entries the wrap-step severed - #214
Merged
Conversation
The `docs/` and `tanglebrain/` bullets both ended mid-list with an unclosed parenthesis. They were not written that way. #155 wrote a correct three-line `docs/` description; #159's project-map wrap-step, logging only "descriptions refreshed", deleted its two continuation lines. The step reads the list line-by-line, so a bullet wrapped across lines loses everything after the first — which is the whole sentence, in a file whose entire job is to point. Both entries are now single physical lines. That is over the ~100-col soft wrap on purpose: a long line survives the next wrap-step and a wrapped one does not, and correctness of the map beats the wrap convention. Nothing in this repo can enforce it, so the file's header comment now says it and names the two commits that demonstrate it — the next editor's instinct will be to rewrap, and the damage is silent. `tanglebrain/` also gains `cli.py` as the primary surface and `integrity.py`, neither of which the severed text reached. Also: gitignore coverage output (`.coverage`, `.coverage.*`, `htmlcov/`), a build artifact that had reached a branch once already. This is the surviving half of #150, rebuilt on current main. That branch's FEATURES.md change is not carried: it deleted ten TBD stubs, and main has since replaced them with real descriptions, so merging it would delete content rather than restore it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
PROJECT-MAP.md— thedocs/andtanglebrain/bullets both ended mid-list with an unclosed parenthesis. Both are repaired, as single physical lines, and the file's header comment now says why they must stay that way.tanglebrain/also gainscli.pyas the primary surface andintegrity.py, neither of which the severed text reached..gitignore— coverage output (.coverage,.coverage.*,htmlcov/) was not ignored.CHANGELOG.md— both under### Internal. No user-visible behaviour changes.Why
The severed entries are not a typo — they are a mechanism, and it will fire again.
git log -p -- PROJECT-MAP.mdshows it happening. In #155 a session wrote a correct three-linedocs/description. In #159 the project-map wrap-step, logging only "Project Map: membership/descriptions refreshed", deleted its two continuation lines and left the sentence cut afterdata-model,. The step reads the bullet list line-by-line, so any bullet wrapped across lines loses everything after the first. That is the whole description, in a file whose entire job is to point somewhere.So a hand fix that wraps is not a fix — it is the same content queued for deletion at the next wrap. Hence single physical lines, over the ~100-col soft wrap on purpose. Nothing in this repo can enforce that, so the header comment carries the reason and names the two commits that demonstrate it; the next editor's instinct is to rewrap, and the damage is silent.
The generator bug itself is TangleClaw's, not this repo's, and is filed separately.
Relationship to #150
This is the surviving half of #150 (
chore/janitor-sweep-2026-09), rebuilt on current main. That branch is based onf68fe90, sixty PRs behind, and conflicts in three files. Taken piece by piece:FEATURES.md— drop ten TBD stubsPROJECT-MAP.md— fill placeholders.gitignore— coverage patterns#150 is closed in favour of this.
Test plan
make test— 791 passed, 17 skipped; ruff and mypy clean (thetesttarget runslintfirst). Docs and gitignore only, so this is a regression check, not evidence for new behaviour.git check-ignore -vresolves all three new patterns to their own lines (.gitignore:60/61/62) against real.coverage,.coverage.abcandhtmlcov/x.htmlfiles, since removed. One^\.coverage$line in the file — no duplicate.PROJECT-MAP.mdtext checked against the tree rather than copied from the old text:docs/design/holds nine documents plusREADME.md, whose## Known gapssection exists (line 47); every module named undertanglebrain/exists.Note for the reviewer
prawduct-hook check-change-log-entryreportsno-entrystructurally here —.prawduct/is gitignored by owner ruling, so git cannot see.prawduct/change-log.md. The trackedCHANGELOG.mdentry is under[Unreleased]/### Internal, which is the correct tier: patch, no user-visible change.