Development record
2026-07-28 — itd-102 implementation: repo positioning lives in a NEW `internal/core/positioning` package, not `internal/core/identity` — that package is the git commit-author gate (`.abcd/config/identity.json` pin, pre-commit hook) and shares nothing with repo self-description but the English word; folding them would put two unrelated concerns behind one name. The user-facing verb stays `abcd identity` (spc-19). For the same collision the registry is `.abcd/positioning.json` at the `.abcd/` top level (beside docs-lint.json / record-lint.json / rules.json), NOT `.abcd/config/identity.json`. Rejected: extending the commit-identity package; naming the verb `abcd positioning` (spc-19 fixes the verb).
2026-07-28 — itd-102 implementation: repo positioning lives in a NEW internal/core/positioning package, not internal/core/identity — that package is the git commit-author gate (.abcd/config/identity.json pin, pre-commit hook) and shares nothing with repo self-description but the English word; folding them would put two unrelated concerns behind one name. The user-facing verb stays abcd identity (spc-19). For the same collision the registry is .abcd/positioning.json at the .abcd/ top level (beside docs-lint.json / record-lint.json / rules.json), NOT .abcd/config/identity.json. Rejected: extending the commit-identity package; naming the verb abcd positioning (spc-19 fixes the verb).
Frontmatter
| id | dcn-2607280000000006 |
|---|---|
| type | decision |
| date | 2026-07-28 |
.abcd/work/decisions/dcn-2607280000000006-itd-102-implementation-repo-positioning.md
open on GitHub ↗ · commit history ↗
mentions2
- itd-102**Your repo says the same thing about itself everywhere — because abcd asked you once and holds every surface to it.** A project's positioning fragments silently: the README strapline, the package or plugin manifest description, and the agent conventions file are each edited at different moments, and soon three surfaces tell three stories about what the project is. When abcd prepares a repo it interviews the user for the project's identity — title, tagline, and a short elevator pitch — and records the answers in one canonical home in the development record. Every surface rendering derives from that home, and a deterministic positioning check compares the surfaces against it on every audit: a mismatch is highlighted with the exact drifted line, and the fix is either re-render from the record or a deliberate, recorded identity change — never a silent extra variant, and never a silent rewrite by abcd. "I changed my tagline once, in one place, and abcd chased it everywhere else," said Alice, a solo founder. "When a stray edit crept into the README, the next audit pointed at the exact line instead of letting the drift settle in."
- spc-19your-repo-says-the-same-thing-about-itself-everywhere-becaus