Files
playbook/antigravity-awesome-skills/skills/lore/references/stale-new-markers.md
T
2026-07-13 07:44:54 +00:00

3.2 KiB

Stale / New marking convention

When sync proposes a change, it never silently mutates files. Instead it emits one or more of these markers. The user reads the proposal and accepts/rejects per marker type.

Marker types

Marker Purpose
[NEW] Propose adding a new entry
[STALE] Propose marking an existing entry as superseded/contradicted
[REFINED] Propose updating an existing entry's text in place
[ALERT] Conflicting signal detected during sync that needs human resolution
[COMPRESS NOTICE] Threshold tripped; suggest running compress after this sync

Full example

## [NEW] Proposed additions
- [scopes/frontend/ARCHITECTURE.md] [ARCH-2026-07-09-b4d2] Use `react-hook-form` for all forms. #added:2026-07-09
- [scopes/frontend/CONVENTIONS.md] [CONV-2026-07-09-c5e1] Never use `any` in TypeScript; prefer `unknown` + narrowing. #added:2026-07-09

## [STALE] Candidates for archive
- [scopes/frontend/ARCHITECTURE.md] [ARCH-2026-01-15-d7a3] Use Pages Router (Next.js). #stale:2026-07-09
  Evidence: `frontend/package.json` shows `"next": "^14.0.0"` with `app/` directory present.

## [REFINED] Existing entries updated
- [scopes/frontend/DECISIONS.md] [DEC-2026-02-03-7c19] (was: "use Zustand") → "use Zustand v4+ with slices pattern" #verified:2026-07-09

## [ALERT] Conflicting signals detected during sync
- Sync proposes `[CONV-2026-07-09-c5e1]` (no `any`), but `[CONV-2026-06-01-f0a1]` already says "use `any` sparingly in test mocks". Resolution: refined entry above clarifies the exception.

## [COMPRESS NOTICE]
- Memory bank has 612 entries; last compression 47 days ago. Consider running `lore compress` after this sync.

User reply semantics

The user can reply with:

  • "accept all" — apply every [NEW], [STALE], and [REFINED] in the proposal
  • "accept only NEW" — add new entries, leave existing untouched
  • "accept NEW + REFINE" — add new and refine, do not mark anything stale
  • "drop STALE #d7a3" — skip one specific stale entry
  • "reject all" — discard the entire proposal

For partial acceptance, the user should explicitly list which items to apply.

Marker → file operation mapping

Marker File action
[NEW] Append a new bullet to the named file, with #added:<today>
[STALE] Append #stale:<today> tag to the existing entry; entry stays in the file
[REFINED] Replace the entry text in place, keep the ID, update #verified:<today>
[ALERT] No direct file change; only marks the conflict for user resolution
[COMPRESS NOTICE] No file change; advisory only

Note: [STALE] does not delete or move anything. The entry remains in its file with a #stale tag until the user (or a later sync) explicitly moves it to archive/. This keeps the rollback path clean.

When audit uses these markers

audit does not use these markers. It writes its own severity tags ([CONFLICT], [STALE], [UNVERIFIED]) into the audit report file under .lore/audit/. The naming overlap ([STALE] in sync vs [STALE] severity in audit) is intentional — both refer to the same concept (entry no longer accurate) but operate in different files with different downstream actions.