Knowledge cache + Florence timestamp-gate

florence.agent.md:
- Tilfoej Step 0: timestamp-gate
  Laes ~/.claude/.florence-timestamp — spring runden over
  hvis under 30 minutter gammel. Skriv timestamp efter runde.
  Forhindrer Florence i at kore ved hver session-aabning.

curabis-standard.agent.md:
- CLAUDE.md-template: erstat 24 URL-fetches med local cache-laesning
  fra ~/.claude/bcquality-knowledge/ (architecture/ testing/ mcp/)
  Session-start reduceres fra ~25 netvaerkskald til 0.

Global ~/.claude/CLAUDE.md opdateret separat:
- Auto-update downloader nu knowledge-filer til cache ved SHA-aendring
- Session-start laeder fra cache, ikke fra URLs
- Florence korer kun hvis >= 30 min siden sidst

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Michael Dieringer 2026-06-25 18:32:20 +02:00
parent 6cfb1498e2
commit 526b2a126d
2 changed files with 29 additions and 25 deletions

View file

@ -58,6 +58,26 @@ improvise the checklist — she follows it exactly, and flags if it is outdated.
## Round protocol ## Round protocol
### Step 0 — Timestamp gate
Before doing anything, check `~/.claude/.florence-timestamp`:
```
$ts = Get-Content ~/.claude/.florence-timestamp -ErrorAction SilentlyContinue
$age = if ($ts) { ((Get-Date) - [datetime]$ts).TotalMinutes } else { 999 }
```
- If `$age < 30`: skip the round entirely. Silence is the report.
- If `$age >= 30` (or file missing): proceed to Step 1.
After completing Step 4 (report), always write the current timestamp:
```
(Get-Date -Format "o") | Set-Content ~/.claude/.florence-timestamp
```
This prevents Florence from running more than once per 30 minutes,
regardless of how many sessions are opened.
### Step 1 — Read the checklist ### Step 1 — Read the checklist
Open HEARTBEAT.md. Note the last round timestamp. Proceed item by item. Open HEARTBEAT.md. Note the last round timestamp. Proceed item by item.

View file

@ -136,31 +136,15 @@ This file is read automatically by Claude Code at the start of every session.
At the start of every session, before doing anything else: At the start of every session, before doing anything else:
1. Read `.github/.agents/bcquality.agent.md` 1. Read `.github/.agents/bcquality.agent.md`
2. Fetch and read ALL knowledge files listed under Source - Layer 2: 2. Read BCQuality knowledge files from local cache (no network — fast):
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/architecture/pages-must-not-contain-business-logic.md ```
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/architecture/namespace-must-be-verified-from-source.md C:\Users\mid\.claude\bcquality-knowledge\architecture\*.md
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/architecture/al-identifiers-must-be-english.md C:\Users\mid\.claude\bcquality-knowledge\testing\*.md
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/architecture/clarify-before-building.md C:\Users\mid\.claude\bcquality-knowledge\mcp\*.md
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/architecture/xliff-translation-workflow.md ```
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/architecture/new-file-requires-vscode-refresh.md The cache is populated automatically when BCQuality updates (via global CLAUDE.md
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/architecture/exposed-objects-must-be-in-a-permission-set.md auto-update). If the cache is missing or empty on first run, the auto-update will
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/architecture/shared-project-memory-must-be-in-repo.md populate it. Do not fetch URLs manually unless explicitly asked.
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/architecture/commit-message-must-include-bc-task-id.md
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/architecture/branch-merge-to-main-workflow.md
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/testing/test-setup-must-use-library-codeunit.md
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/testing/test-data-must-be-random-and-complete.md
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/testing/tests-must-adapt-to-existing-code.md
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/testing/test-one-when-per-test.md
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/testing/ui-test-codeunit-naming.md
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/testing/test-feature-scenario-tags.md
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/mcp/api-page-flowfields-must-be-calcfields.md
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/mcp/stored-derived-fields-must-not-be-exposed-directly.md
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/mcp/api-page-key-fields-must-be-editable-on-insert.md
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/mcp/api-page-least-privilege-write-access.md
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/mcp/agent-must-not-write-business-process-status.md
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/mcp/bc-mcp-find-active-task-for-branch.md
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/mcp/agent-must-resolve-developer-identity-from-bc.md
- https://raw.githubusercontent.com/Curabis/BCQuality/main/custom/knowledge/mcp/ai-eval-scores-must-be-posted-to-bc-table.md
These rules are always active. These rules are always active.