[LOADED_DOCS: NONE]

Update protocol, docs-discovery skill, and doc layering

- Switched AI AGENT CORE PROTOCOL to new `[LOADED_DOCS: N files (+K this turn: ...)]` prefix format in all primary instruction files; updated examples and enforcement details.
- Added `docs-discovery` skill for proactive .md doc loading before code search; documented usage and integration as a shared agent skill.
- Introduced `## Protocol History` section and `LLM_PROTOCOL_DECISIONS.md` decision log for cross-repo protocol change tracking.
- Expanded protocol-audit skill and `REPOS.md` to support 8 instruction files (primary/inherit split), new invariants, and known issues.
- Added/updated structured TODO and issues docs for serialization, logging, and SignalR binary protocol.
- Improved cross-references, doc layering, and clarified documentation-first coding workflow.
- Various minor doc clarifications and formatting for protocol consistency.
This commit is contained in:
Loretta 2026-04-24 08:21:49 +02:00
parent 711c3c8ec0
commit ac7b4d58df
1 changed files with 30 additions and 3 deletions

View File

@ -3,9 +3,20 @@
## 🛑 AI AGENT CORE PROTOCOL (CRITICAL ENFORCEMENT) ## 🛑 AI AGENT CORE PROTOCOL (CRITICAL ENFORCEMENT)
You are operating in a multi-repo, documentation-first architecture. You MUST STRICTLY follow this protocol for every response. Failure to do so will break the workspace rules. You are operating in a multi-repo, documentation-first architecture. You MUST STRICTLY follow this protocol for every response. Failure to do so will break the workspace rules.
1. **MANDATORY OUTPUT PREFIX:** Your response MUST begin exactly with this format on the very first line: 1. **MANDATORY OUTPUT PREFIX:** Your response MUST begin on the very first line with this format:
`[LOADED_DOCS: <comma-separated list of .md files currently in your context>]` `[LOADED_DOCS: N files (+K this turn: <comma-separated basenames>)]`
*(If no .md files are loaded yet, write `[LOADED_DOCS: NONE]`.)* - `N` = total count of `.md` files currently in your context (across all loaded docs in this conversation)
- `K` = count of `.md` files newly loaded during THIS response (may be 0)
- If `K > 0`: list the newly loaded **basenames only** (no paths) after `:`
- If `K = 0`: write `[LOADED_DOCS: N files, no new loads]`
- If `N = 0`: write `[LOADED_DOCS: NONE]`
**Examples:**
- `[LOADED_DOCS: NONE]` — nothing loaded yet
- `[LOADED_DOCS: 1 files, no new loads]` — only `copilot-instructions.md` loaded earlier, nothing new this turn
- `[LOADED_DOCS: 4 files (+3 this turn: LOGGING.md, LOGGING_ISSUES.md, LOGGING_TODO.md)]` — 3 new this turn
This prefix is MANDATORY on **EVERY** response (not just the first, not just when loading happens). It serves two purposes: **(a)** user-visible compliance signal, and **(b)** self-commitment for the no-re-read rule — in subsequent turns you read your own prior prefix from the conversation to enforce Rule #3. Dropping the prefix breaks both.
2. **HARD-GATE DELAY (DOCS BEFORE CODE) & TOOL EXECUTION BLOCK:** 2. **HARD-GATE DELAY (DOCS BEFORE CODE) & TOOL EXECUTION BLOCK:**
- If `[LOADED_DOCS: NONE]` applies, you **MUST STOP** and you are **STRICTLY FORBIDDEN** to use the following tools: `code_search`, `get_symbols_by_name`, `find_symbol`, or `get_file` (for non-markdown files). - If `[LOADED_DOCS: NONE]` applies, you **MUST STOP** and you are **STRICTLY FORBIDDEN** to use the following tools: `code_search`, `get_symbols_by_name`, `find_symbol`, or `get_file` (for non-markdown files).
@ -69,6 +80,22 @@ Skills defined in other repos that can be referenced from here:
Location: `AyCode.Core/.github/skills/protocol-audit/SKILL.md` Location: `AyCode.Core/.github/skills/protocol-audit/SKILL.md`
Activate from an AyCode.Core session, or read the SKILL.md directly and follow its steps. Activate from an AyCode.Core session, or read the SKILL.md directly and follow its steps.
- **docs-discovery** — Load relevant `.md` documentation (main + `_ISSUES` + `_TODO` paired sets) BEFORE source-code search or modifications. Saves tokens vs. grep-based rediscovery.
Location: `AyCode.Core/.github/skills/docs-discovery/SKILL.md` (see `own-dep-repos` above for the relative path to AyCode.Core)
**Invoke proactively** before any domain-related coding task (see "Documentation-first coding" below). Honours the active repo's **no-re-read** rule.
## Protocol History
Cumulative log of LLM-protocol decisions (rule changes, new skills, structural shifts):
- `AyCode.Core/.github/LLM_PROTOCOL_DECISIONS.md`
Read this file when you need to understand **why** a rule is the way it is, or before proposing a protocol change — it may save a debate about something already resolved.
## Documentation-first coding
Before running any source-code `Grep` / `get_file` / `code_search` in response to a domain-related request, invoke the **`docs-discovery`** skill (path above). Scans `docs/` folders in THIS repo AND in referenced repos (via `own-dep-repos`) via Glob, loads paired .md sets as a unit. Rule-number-agnostic — refers to rule NAMES (no-re-read, folder-navigation, explicit-consent) which are stable across repos.
## Business Domain ## Business Domain
1. **FruitBank** = fruit & vegetable wholesaler. The server side runs as a **nopCommerce plugin** — Customer, Order, Product, GenericAttribute are nopCommerce entities. 1. **FruitBank** = fruit & vegetable wholesaler. The server side runs as a **nopCommerce plugin** — Customer, Order, Product, GenericAttribute are nopCommerce entities.
2. **Shipping** = INBOUND delivery (supplier → warehouse). **Order** = OUTBOUND delivery (warehouse → customer). Never confuse the two directions. 2. **Shipping** = INBOUND delivery (supplier → warehouse). **Order** = OUTBOUND delivery (warehouse → customer). Never confuse the two directions.