-
Notifications
You must be signed in to change notification settings - Fork 1
memory: author template for absorb-time lint hygiene #167
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
AceHack
merged 2 commits into
main
from
docs/memory-author-template-absorb-time-lint-classes
Apr 23, 2026
Merged
Changes from 1 commit
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,172 @@ | ||
| # Memory author template — absorb-time lint hygiene | ||
|
|
||
| Quick reference for authors (humans or agents) writing | ||
| memory files under `memory/` in this repo. Captures the | ||
| five markdownlint classes that have repeatedly bitten | ||
| absorb-time drafts during the 2026-04-23 Overlay A cadence | ||
| (PRs #157 / #158 / #159 / #162 / #164), so future | ||
| migrations and fresh-writes don't rediscover the same | ||
| cleanups. | ||
|
|
||
| CI runs `markdownlint-cli2 "**/*.md"` on every PR; lint | ||
| failures block merge. Applying the five patterns below at | ||
| author-time keeps the draft clean in one pass. | ||
|
|
||
| ## The five absorb-time lint classes | ||
|
|
||
| ### 1. MD003 — heading style (atx, not setext) | ||
|
|
||
| **Wrong:** | ||
|
|
||
| ```markdown | ||
| Some conclusion text. | ||
| --- | ||
| ## Next section | ||
| ``` | ||
|
|
||
| The `---` immediately after a text line is parsed as a | ||
| setext H2 for that text. Blank line required between | ||
| them. | ||
|
|
||
| **Right:** | ||
|
|
||
| ```markdown | ||
| Some conclusion text. | ||
|
|
||
| --- | ||
|
|
||
| ## Next section | ||
| ``` | ||
|
|
||
| ### 2. MD018 — no space after hash | ||
|
|
||
| Lines beginning with `#NNN` where `NNN` is a number (e.g. | ||
| PR references like `#158`) get parsed as a heading with a | ||
| missing space. | ||
|
|
||
| **Wrong:** | ||
|
|
||
| ```markdown | ||
| follows PRs #157, #158, #159, | ||
| #162, #164). | ||
| ``` | ||
|
|
||
| **Right (rephrase to avoid number-at-start-of-line):** | ||
|
|
||
| ```markdown | ||
| follows the earlier four Overlay-A PRs. | ||
| ``` | ||
|
|
||
| Or put a non-numeric word in front of the `#` if the | ||
| numbers matter. | ||
|
|
||
| ### 3. MD022 — blanks around headings | ||
|
|
||
| Headings need blank lines above **and** below. Multi-line | ||
| headings are also flagged because markdown treats only | ||
| the first line as heading. | ||
|
|
||
| **Wrong:** | ||
|
|
||
| ```markdown | ||
| ## What people typically know about AI in engineering (the | ||
| common priors) | ||
|
|
||
| - Bullet text | ||
| ``` | ||
|
|
||
| **Right (single-line heading):** | ||
|
|
||
| ```markdown | ||
| ## What people typically know about AI in engineering (the common priors) | ||
|
|
||
| - Bullet text | ||
| ``` | ||
|
|
||
| ### 4. MD026 — no trailing punctuation in headings | ||
|
|
||
| Headings ending in `:` are flagged. | ||
|
|
||
| **Wrong:** | ||
|
|
||
| ```markdown | ||
| ## Why: | ||
|
|
||
| - First reason | ||
| ``` | ||
|
|
||
| **Right:** | ||
|
|
||
| ```markdown | ||
| ## Why | ||
|
|
||
| - First reason | ||
| ``` | ||
|
|
||
| Same applies to `## How to apply:` → `## How to apply`, | ||
| `## Rule:` → `## Rule`, etc. | ||
|
|
||
| ### 5. MD032 — blanks around lists | ||
|
|
||
| Lists need blank lines above and below. | ||
|
|
||
| **Wrong:** | ||
|
|
||
| ```markdown | ||
| **Why:** | ||
| - First reason | ||
| - Second reason | ||
| - Third reason | ||
| Next paragraph starts here. | ||
| ``` | ||
|
|
||
| **Right:** | ||
|
|
||
| ```markdown | ||
| **Why:** | ||
|
|
||
| - First reason | ||
| - Second reason | ||
| - Third reason | ||
|
|
||
| Next paragraph starts here. | ||
| ``` | ||
|
|
||
| Same applies to ordered lists (`1.`, `2.`, ...). | ||
|
|
||
| ## Self-check checklist | ||
|
|
||
| Before committing a new memory file: | ||
|
|
||
| 1. Run `markdownlint-cli2 memory/<your-file>.md` locally | ||
| if `markdownlint-cli2` is installed. | ||
| 2. Or eyeball the file for the five patterns above. | ||
| 3. If a lint error fires in CI despite this check, add | ||
| the new class here so the next author doesn't | ||
| rediscover it. | ||
|
|
||
| ## Not covered here | ||
|
|
||
| This template covers the absorb-time lint classes only. | ||
| Content-level discipline lives in separate substrate: | ||
|
|
||
| - Memory frontmatter schema (`name`, `description`, | ||
| `type`, `originSessionId`): see `CLAUDE.md` | ||
| auto-memory section and the AutoMemory / AutoDream | ||
| references. | ||
| - Signal-preservation (verbatim quotes, no paraphrase on | ||
| ingest, supersede markers not deletion): see | ||
| `memory/feedback_signal_in_signal_out_clean_or_better_dsp_discipline.md`. | ||
|
AceHack marked this conversation as resolved.
AceHack marked this conversation as resolved.
|
||
| - In-repo-preferred where possible: see the per-user | ||
| feedback memory on that discipline (exists at | ||
| `~/.claude/projects/<slug>/memory/` pending a future | ||
| Overlay A migration). | ||
| - Newest-first ordering in `MEMORY.md` index: see | ||
| `memory/feedback_newest_first_ordering.md`. | ||
|
|
||
| ## When the five classes are out of date | ||
|
|
||
| This template should be updated whenever a new | ||
| absorb-time lint class is observed consistently across | ||
| multiple memory drafts. Add the class here with | ||
| wrong/right examples and a one-line rule. | ||
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.