📦 deps(thirdparty): update snapshots
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
# Entry format reference
|
||||
|
||||
Detailed specification for `.lore/` entries. The main `SKILL.md` covers entry structure briefly; this file is the full spec.
|
||||
|
||||
## Bullet structure
|
||||
|
||||
Each entry is a Markdown bullet (≤ 2 lines), containing:
|
||||
|
||||
- **Layer prefix**: `ARCH`, `DEC`, or `CONV`
|
||||
- **ID**: `LAYER-YYYY-MM-DD-xxxx` where `xxxx` is a 4-char content hash
|
||||
- **Inline status tags** (at the end of the entry)
|
||||
|
||||
```markdown
|
||||
- [ARCH-2026-07-09-a3f2] Use Next.js App Router; reason: streaming + RSC. #added:2026-07-09
|
||||
- [DEC-2026-02-03-7c19] Chose Zustand over Redux; reason: 60% less boilerplate. Alternatives: Redux Toolkit, Jotai. #added:2026-02-03
|
||||
- [CONV-2026-01-20-b1e8] Never commit secrets; use `dotenv` + `.env.local` (gitignored). #added:2026-01-20
|
||||
- [ARCH-2026-03-10-a1b2] Use TanStack Query for all server state. #added:2026-03-10 #verified:2026-06-15
|
||||
```
|
||||
|
||||
## ID generation
|
||||
|
||||
The 4-char `xxxx` is the first 4 hex chars of `sha256(entry text)`. This makes IDs:
|
||||
|
||||
- **Deterministic**: rewriting the same fact produces the same ID
|
||||
- **Conflict-free** under concurrent writes by multiple agents
|
||||
- **Reverse-lookup-able** by audit tools
|
||||
|
||||
If two entries have identical content (hash collision, statistically rare), add a distinguishing word to one and recompute.
|
||||
|
||||
## Tag specification
|
||||
|
||||
| Tag | Meaning |
|
||||
|---|---|
|
||||
| `#added:YYYY-MM-DD` | When the entry was created |
|
||||
| `#verified:YYYY-MM-DD` | Last time a human or audit confirmed the entry is still true |
|
||||
| `#stale:YYYY-MM-DD` | Flagged by `sync` as superseded or contradicted; user decides keep/archive |
|
||||
| `#archived:YYYY-MM-DD` | Moved to `archive/` |
|
||||
|
||||
Multiple tags can co-exist on one entry (e.g. `#added:2026-01-15 #verified:2026-06-01`).
|
||||
|
||||
## Cross-file references
|
||||
|
||||
When `SUMMARY.md` or another file references an entry, qualify it with the file path to avoid ID collisions across scopes:
|
||||
|
||||
```
|
||||
[scopes/frontend/DECISIONS.md#DEC-2026-02-03-7c19]
|
||||
[_global/CONVENTIONS.md#CONV-2026-01-20-b1e8]
|
||||
```
|
||||
|
||||
The path is relative to `.lore/`.
|
||||
|
||||
## Splitting vs. single entries
|
||||
|
||||
If a fact can't fit in ≤ 2 lines, split into multiple entries and cross-reference them by ID:
|
||||
|
||||
```markdown
|
||||
- [ARCH-2026-07-09-a3f2] Use Next.js App Router. #added:2026-07-09
|
||||
- [DEC-2026-07-09-b1e8] Reason: streaming + RSC, see [ARCH-2026-07-09-a3f2]. #added:2026-07-09
|
||||
```
|
||||
|
||||
Instead of stuffing them into a single overly long bullet.
|
||||
|
||||
## What counts as "atomic"
|
||||
|
||||
A fact is atomic if it answers exactly one question:
|
||||
|
||||
- "What is the frontend framework?" → `ARCH` entry about Next.js
|
||||
- "Why Next.js not Remix?" → `DEC` entry referencing the `ARCH` entry
|
||||
|
||||
If your entry answers two questions, split it.
|
||||
Reference in New Issue
Block a user