[LOADED_DOCS: 3 files, no new loads]

Update ID format to use per-repo prefixes and random suffix

Migrated all issue, TODO, and decision IDs to a new 4-part format: <PREFIX>-<TOPIC>-<TYPE>-<RAND>. Added per-repo prefix declarations in copilot-instructions.md and documented conventions in REPO_PREFIXES.md. Updated all topic registries, logs, cross-references, and documentation to use the new format. Introduced MIGRATION_ID_MAPPING.md for old-to-new ID mapping. Enhanced skills and protocol audit logic to validate and enforce per-repo prefixes and topic codes at runtime. Clarified Framework-First doctrine and ensured all references are unambiguous.
This commit is contained in:
Loretta 2026-04-26 19:12:50 +02:00
parent b4d68e1fa4
commit 3cee1e20d7
4 changed files with 52 additions and 8 deletions

43
.github/TOPIC_CODES.md vendored Normal file
View File

@ -0,0 +1,43 @@
# Topic Codes — registry for AyCode.Blazor's own topics (`ACBLAZOR`)
Per the Framework-First Design Principle, this Layer 1 registry lists **only AyCode.Blazor's own (`ACBLAZOR`) topics**. Lower-layer (inherited) topics live in their own repos' registries — at runtime, the `docs-check` skill walks `own-dep-repos` from the invocation point to gather all inherited topics. AyCode.Blazor inherits from `AyCode.Core` (see this repo's `@repo.own-dep-repos`).
Full ID format: `<PREFIX>-<TOPIC>-<TYPE>-<RAND>` — see `AyCode.Core/.github/REPO_PREFIXES.md` for the format spec.
## ACBLAZOR topic codes
| Code | Topic | Scope | Docs location |
|---------|-----------------------------|-----------------------------------------------------------------------------------|------------------------------------------------------------------------|
| `GRID` | MGGRID (grid component) | MgGrid component family: layout, CRUD, columns, toolbar, rendering | `AyCode.Blazor.Components/docs/MGGRID/` |
## Type codes (universal — see framework registry)
Type codes (`I`, `T`, `B`, `C`, `DEC`) are universal across all repos and defined in the framework's `TOPIC_CODES.md` (`AyCode.Core/.github/skills/docs-check/references/TOPIC_CODES.md`). This file does not duplicate them.
## ID format rules
See the framework's `TOPIC_CODES.md` (`AyCode.Core/.github/skills/docs-check/references/TOPIC_CODES.md`) for the full ID format rules and Status conventions. This file only registers ACBLAZOR's own topic codes; ACCORE topics are inherited via this repo's `own-dep-repos`.
## Examples (ACBLAZOR only)
```
ACBLAZOR-GRID-T-V4P7 # AyCode.Blazor's MgGrid TODO (e.g., "Generic ID generation in MgGridBase.SetNewId")
ACBLAZOR-GRID-T-S2L9 # AyCode.Blazor's MgGrid TODO (e.g., "Implement local grouping")
ACBLAZOR-GRID-I-XXXX # placeholder for the first MgGrid issue once one is observed
```
## Adding a new ACBLAZOR topic
1. Propose the code (2-5 uppercase chars), short and mnemonic, scoped to AyCode.Blazor's UI-framework domain.
2. Check it doesn't collide with C# class-name prefixes (`Ac*` / `Mg*`).
3. Check it doesn't collide with existing ACBLAZOR topic codes in the table above.
4. Check it doesn't visually collide with framework (`ACCORE-*`) topic codes that this repo references — though the `<PREFIX>` component disambiguates, visual distinction helps readers.
5. Add a row to the table above.
6. Create the topic folder under the relevant project: `AyCode.Blazor.<Project>/docs/{TOPIC_FOLDER_NAME}/` with `README.md`, optional `{TOPIC_FOLDER_NAME}_ISSUES.md`, `{TOPIC_FOLDER_NAME}_TODO.md`.
7. Optional: add an `LLMP-DEC-N` entry in the workspace-level `LLM_PROTOCOL_DECISIONS.md` if the new topic is workspace-meta-significant.
## Cross-references
- **Framework registry** (universal type codes, ID format spec, Status conventions): `AyCode.Core/.github/skills/docs-check/references/TOPIC_CODES.md` (resolved via this repo's `own-dep-repos`).
- **Repo prefix scheme**: `AyCode.Core/.github/REPO_PREFIXES.md`.
- **Decision Log**: `AyCode.Core/.github/LLM_PROTOCOL_DECISIONS.md`.

View File

@ -92,6 +92,7 @@ The first response's `[LOADED_DOCS: ...]` prefix must reflect **3 files** (this
# own-dep-repos: "name: path" — paths are relative to this repo root (.github/..) # own-dep-repos: "name: path" — paths are relative to this repo root (.github/..)
@repo { @repo {
name = "AyCode.Blazor" name = "AyCode.Blazor"
prefix = "ACBLAZOR"
type = "framework" type = "framework"
layer = 1 layer = 1
own-dep-repos = ["AyCode.Core: ../AyCode.Core"] own-dep-repos = ["AyCode.Core: ../AyCode.Core"]

View File

@ -2,14 +2,14 @@
For planned/actionable work see `MGGRID_TODO.md`. For planned/actionable work see `MGGRID_TODO.md`.
No formally-tracked issues yet. In-code TODOs are recorded as TODO entries (`GRID-T-*`) in `MGGRID_TODO.md`, since they describe unfinished work rather than confirmed broken behaviour. No formally-tracked issues yet. In-code TODOs are recorded as TODO entries (`ACBLAZOR-GRID-T-*`) in `MGGRID_TODO.md`, since they describe unfinished work rather than confirmed broken behaviour.
Add the first `## GRID-I-1: ...` entry below when a concrete issue is observed. Add the first `## ACBLAZOR-GRID-I-XXXX: ...` entry below when a concrete issue is observed.
## Issue entry template ## Issue entry template
``` ```
## GRID-I-NN: Short title ## ACBLAZOR-GRID-I-XXXX: Short title
**Severity:** Trivial / Low / Minor / Major · **Status:** Open / Documented / Mitigated · **Area:** <subsystem> **Severity:** Trivial / Low / Minor / Major · **Status:** Open / Documented / Mitigated · **Area:** <subsystem>
@ -23,5 +23,5 @@ Why it happens (code location + design mismatch).
Steps a consumer can take until fixed. Steps a consumer can take until fixed.
### Related TODO ### Related TODO
`MGGRID_TODO.md#grid-t-NN` (if applicable). `MGGRID_TODO.md#acblazor-grid-t-XXXX` (if applicable).
``` ```

View File

@ -7,7 +7,7 @@ For known issues / bugs see `MGGRID_ISSUES.md`.
--- ---
## GRID-T-1: Generic ID generation in `MgGridBase.SetNewId` ## ACBLAZOR-GRID-T-V4P7: Generic ID generation in `MgGridBase.SetNewId`
**Priority:** P2 · **Type:** Refactor (framework-first) · **Origin:** 2026-04-24 in-code TODO audit · **Area:** `Components/Grids/MgGridBase.cs:460` **Priority:** P2 · **Type:** Refactor (framework-first) · **Origin:** 2026-04-24 in-code TODO audit · **Area:** `Components/Grids/MgGridBase.cs:460`
`SetNewId(TDataItem dataItem)` branches on `dataItem.Id is Guid` vs `dataItem.Id is int` to produce a new ID, and converts through `TypeConverter` back to `TId`. The in-code comment `//TODO: int !!! - J.` flags this as unfinished — the logic is not cleanly generic over `TId`. `SetNewId(TDataItem dataItem)` branches on `dataItem.Id is Guid` vs `dataItem.Id is int` to produce a new ID, and converts through `TypeConverter` back to `TId`. The in-code comment `//TODO: int !!! - J.` flags this as unfinished — the logic is not cleanly generic over `TId`.
@ -44,7 +44,7 @@ Problems:
- Existing `Guid` and `int` consumers unaffected. - Existing `Guid` and `int` consumers unaffected.
- Remove the `//TODO: int !!! - J.` comment. - Remove the `//TODO: int !!! - J.` comment.
## GRID-T-2: Implement local grouping in `MgGridSignalRDataSource.GetGroupInfoAsync` ## ACBLAZOR-GRID-T-S2L9: Implement local grouping in `MgGridSignalRDataSource.GetGroupInfoAsync`
**Priority:** P3 · **Type:** Feature · **Origin:** 2026-04-24 in-code TODO audit · **Area:** `Components/Grids/MgGridSignalRDataSource.cs:202` **Priority:** P3 · **Type:** Feature · **Origin:** 2026-04-24 in-code TODO audit · **Area:** `Components/Grids/MgGridSignalRDataSource.cs:202`
```csharp ```csharp
@ -72,8 +72,8 @@ Not urgent — only light grouping usage so far; the base path works. Promote to
## TODO entry template ## TODO entry template
``` ```
## GRID-T-NN: Short title ## ACBLAZOR-GRID-T-XXXX: Short title
**Priority:** P0 / P1 / P2 / P3 · **Type:** Bug fix / Feature / Refactor / Docs · **Related:** `MGGRID_ISSUES.md#grid-i-NN` (if applicable) **Priority:** P0 / P1 / P2 / P3 · **Type:** Bug fix / Feature / Refactor / Docs · **Related:** `MGGRID_ISSUES.md#acblazor-grid-i-XXXX` (if applicable)
Description of what and why, including the trigger (user request, audit finding, incident). Description of what and why, including the trigger (user request, audit finding, incident).