fix broken doc links
This commit is contained in:
18
README.md
18
README.md
@@ -72,9 +72,9 @@ docker compose -f docker-compose.prod.yml up --build -d
|
|||||||
|
|
||||||
Details stehen in:
|
Details stehen in:
|
||||||
|
|
||||||
- `/docs/docker-lokal.md`
|
- `/docs/howto-docker-lokal.md`
|
||||||
- `/docs/docker-produktiv.md`
|
- `/docs/howto-docker-produktiv.md`
|
||||||
- `/docs/docker-betrieb.md` (Übersicht)
|
- `/docs/explanation-docker-betrieb.md` (Übersicht)
|
||||||
|
|
||||||
## Seed-Daten
|
## Seed-Daten
|
||||||
|
|
||||||
@@ -216,12 +216,12 @@ docker compose exec php composer cs:fix
|
|||||||
## Dokumentation
|
## Dokumentation
|
||||||
|
|
||||||
- `/docs/index.md` Dokumentationsstart mit chronologischem Lernpfad und Referenzbereichen
|
- `/docs/index.md` Dokumentationsstart mit chronologischem Lernpfad und Referenzbereichen
|
||||||
- `/docs/00-systemueberblick.md` Einstieg in Produktbild und Kernprinzipien
|
- `/docs/tutorial-02-systemueberblick.md` Einstieg in Produktbild und Kernprinzipien
|
||||||
- `/docs/01-setup-und-erster-login.md` lokales Setup und erster Smoke-Test
|
- `/docs/tutorial-03-setup-und-erster-login.md` lokales Setup und erster Smoke-Test
|
||||||
- `/docs/02-domain-glossar.md` zentrale Begriffe fuer Tenant/Role/Scope
|
- `/docs/reference-domain-glossar.md` zentrale Begriffe fuer Tenant/Role/Scope
|
||||||
- `/docs/03-architektur-request-flow.md` Request-Flow und Schichtmodell
|
- `/docs/tutorial-04-architektur-request-flow.md` Request-Flow und Schichtmodell
|
||||||
- `/docs/06-security-tenant-scope.md` Security-Grundlagen vor Feature-Arbeit
|
- `/docs/tutorial-07-security-tenant-scope.md` Security-Grundlagen vor Feature-Arbeit
|
||||||
- `/docs/07-api-erweitern.md` verbindlicher API-Aenderungsablauf inkl. OpenAPI
|
- `/docs/tutorial-08-api-erweitern.md` verbindlicher API-Aenderungsablauf inkl. OpenAPI
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
|
|||||||
@@ -12,3 +12,4 @@ Structure:
|
|||||||
References:
|
References:
|
||||||
- Planner standard: `tools/codex-skills/starterkit-planner/SKILL.md`
|
- Planner standard: `tools/codex-skills/starterkit-planner/SKILL.md`
|
||||||
- Guardrails: `tools/codex-skills/core-guardrails/SKILL.md`
|
- Guardrails: `tools/codex-skills/core-guardrails/SKILL.md`
|
||||||
|
- Docs/Skills audit policy: `agent-system/checks/docs-skills-audit-policy.md`
|
||||||
|
|||||||
27
agent-system/checks/docs-skills-audit-policy.md
Normal file
27
agent-system/checks/docs-skills-audit-policy.md
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# Docs/Skills Audit Policy
|
||||||
|
|
||||||
|
Letzte Aktualisierung: 2026-03-09
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Einheitliche Einstufung und Ablage von Findings fuer Docs-/Skills-Audits.
|
||||||
|
|
||||||
|
## Severity-Klassen
|
||||||
|
|
||||||
|
- `P0`: Kritischer Produktions- oder Sicherheitsimpact.
|
||||||
|
- `P1`: Hoher Architektur-/Compliance-Impact, kurzfristig zu beheben.
|
||||||
|
- `P2`: Mittlerer Impact, kein unmittelbarer Betriebsblocker.
|
||||||
|
- `P3`: Niedriger Impact, redaktionell oder kosmetisch.
|
||||||
|
|
||||||
|
## Persistenzregeln
|
||||||
|
|
||||||
|
- `P0` und `P1` muessen als eigener Run unter `agent-system/runs/` dokumentiert werden.
|
||||||
|
- Naming fuer diese Runs: `DOCS-SKILLS-AUDIT-00x` (fortlaufend).
|
||||||
|
- `P2` und `P3` werden kompakt im laufenden Audit-Protokoll gesammelt und spaeter gebuendelt umgesetzt.
|
||||||
|
|
||||||
|
## Mindestinhalt pro grossem Finding-Run (`P0`/`P1`)
|
||||||
|
|
||||||
|
- Finding-ID, Severity, betroffene Dateien.
|
||||||
|
- Reproduzierbare Evidenz (Befehl/Output oder Dateiverweis).
|
||||||
|
- Geplante Mitigation inkl. Guard-/Gate-Bezug.
|
||||||
|
- Abschlussstatus (`open`, `resolved`, `accepted-risk`).
|
||||||
@@ -50,6 +50,8 @@ target_dir="${codex_home_dir}/skills"
|
|||||||
managed_skills=(
|
managed_skills=(
|
||||||
"core-guardrails"
|
"core-guardrails"
|
||||||
"starterkit-planner"
|
"starterkit-planner"
|
||||||
|
"starterkit-grid-standards"
|
||||||
|
"starterkit-php-style-ci"
|
||||||
)
|
)
|
||||||
|
|
||||||
for skill in "${managed_skills[@]}"; do
|
for skill in "${managed_skills[@]}"; do
|
||||||
@@ -70,7 +72,7 @@ check_skill() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
local diff
|
local diff
|
||||||
diff="$(rsync -rcn --delete --itemize-changes "${src}/" "${dst}/" || true)"
|
diff="$(diff -qr "${src}" "${dst}" || true)"
|
||||||
if [[ -n "${diff}" ]]; then
|
if [[ -n "${diff}" ]]; then
|
||||||
echo "[DRIFT] ${skill} differs:"
|
echo "[DRIFT] ${skill} differs:"
|
||||||
echo "${diff}" | sed 's/^/ /'
|
echo "${diff}" | sed 's/^/ /'
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Leitfaden für die erste Änderung
|
# Leitfaden für die erste Änderung
|
||||||
|
|
||||||
Letzte Aktualisierung: 2026-03-06
|
Letzte Aktualisierung: 2026-03-09
|
||||||
|
|
||||||
## Ziel
|
## Ziel
|
||||||
|
|
||||||
@@ -37,7 +37,7 @@ Ein neuer Entwickler soll den ersten Change strukturiert und reproduzierbar umse
|
|||||||
2. Permission- und Tenant-Scope-Prüfungen beibehalten
|
2. Permission- und Tenant-Scope-Prüfungen beibehalten
|
||||||
3. Optional Service/Repository ergänzen, Instanziierung über `app(...)`/Factory-Standards
|
3. Optional Service/Repository ergänzen, Instanziierung über `app(...)`/Factory-Standards
|
||||||
4. `docs/openapi.yaml` aktualisieren
|
4. `docs/openapi.yaml` aktualisieren
|
||||||
5. `docs/api.md` mit Beispiel aktualisieren
|
5. `/docs/reference-api.md` mit Beispiel aktualisieren
|
||||||
6. Bei neuen Berechtigungen: `PermissionService` + `init.sql` synchron halten, für Bestandsumgebungen idempotentes SQL-Update in `db/updates/*.sql` bereitstellen
|
6. Bei neuen Berechtigungen: `PermissionService` + `init.sql` synchron halten, für Bestandsumgebungen idempotentes SQL-Update in `db/updates/*.sql` bereitstellen
|
||||||
|
|
||||||
### Done-Kriterien
|
### Done-Kriterien
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Lokale Entwicklung
|
# Lokale Entwicklung
|
||||||
|
|
||||||
Letzte Aktualisierung: 2026-03-06
|
Letzte Aktualisierung: 2026-03-09
|
||||||
|
|
||||||
## Ziel
|
## Ziel
|
||||||
|
|
||||||
@@ -55,8 +55,8 @@ Bei JS-Änderungen zusätzlich Browser-Smoke mit DevTools-Console (keine JS-Erro
|
|||||||
## API-spezifisch
|
## API-spezifisch
|
||||||
|
|
||||||
- `docs/openapi.yaml` aktualisieren
|
- `docs/openapi.yaml` aktualisieren
|
||||||
- bei Bedarf `docs/api.md` ergänzen
|
- bei Bedarf `/docs/reference-api.md` ergänzen
|
||||||
- bei Security-Änderungen `docs/sicherheitsmodell.md` aktualisieren
|
- bei Security-Änderungen `/docs/explanation-sicherheitsmodell.md` aktualisieren
|
||||||
|
|
||||||
## Vertiefung
|
## Vertiefung
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Dokumentation
|
# Dokumentation
|
||||||
|
|
||||||
Letzte Aktualisierung: 2026-03-06
|
Letzte Aktualisierung: 2026-03-09
|
||||||
|
|
||||||
Diese Dokumentation ist nach dem Diataxis-Modell in vier Quadranten gegliedert: Tutorials zum Lernen, How-to Guides zum Nachschlagen von Aufgaben, Explanation zum Verstehen und Reference zum Nachschlagen von Fakten.
|
Diese Dokumentation ist nach dem Diataxis-Modell in vier Quadranten gegliedert: Tutorials zum Lernen, How-to Guides zum Nachschlagen von Aufgaben, Explanation zum Verstehen und Reference zum Nachschlagen von Fakten.
|
||||||
|
|
||||||
@@ -93,6 +93,8 @@ Diese Dokumentation ist nach dem Diataxis-Modell in vier Quadranten gegliedert:
|
|||||||
- Definition of Done vor Merge.
|
- Definition of Done vor Merge.
|
||||||
- `/docs/reference-codex-prompts.md`
|
- `/docs/reference-codex-prompts.md`
|
||||||
- Standard-Prompts fuer Skill-basierte Planung und Implementierung.
|
- Standard-Prompts fuer Skill-basierte Planung und Implementierung.
|
||||||
|
- `/docs/reference-extension-readiness.md`
|
||||||
|
- Verbindliche Vorbedingungen fuer spaetere Module ohne Hook-/Lifecycle-Festlegung.
|
||||||
- `/docs/reference-agents-overview.md`
|
- `/docs/reference-agents-overview.md`
|
||||||
- Einstieg in das Rollenmodell und die Artefakte.
|
- Einstieg in das Rollenmodell und die Artefakte.
|
||||||
- `/docs/reference-agents-roles.md`
|
- `/docs/reference-agents-roles.md`
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Agent Workflow Overview
|
# Agent Workflow Overview
|
||||||
|
|
||||||
Letzte Aktualisierung: 2026-03-06
|
Letzte Aktualisierung: 2026-03-09
|
||||||
|
|
||||||
This project uses a multi-role workflow for issue and feature delivery.
|
This project uses a multi-role workflow for issue and feature delivery.
|
||||||
|
|
||||||
@@ -24,6 +24,6 @@ Source of truth:
|
|||||||
- quality gates: `agent-system/checks/quality-gates.json`
|
- quality gates: `agent-system/checks/quality-gates.json`
|
||||||
|
|
||||||
Entry points:
|
Entry points:
|
||||||
- roles: `docs/agents/roles.md`
|
- roles: `/docs/reference-agents-roles.md`
|
||||||
- workflow: `docs/agents/flow.md`
|
- workflow: `/docs/reference-agents-flow.md`
|
||||||
- schemas and prompts: `agent-system/`
|
- schemas and prompts: `agent-system/`
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Codex Prompt-Standards
|
# Codex Prompt-Standards
|
||||||
|
|
||||||
Letzte Aktualisierung: 2026-03-06
|
Letzte Aktualisierung: 2026-03-09
|
||||||
|
|
||||||
## Ziel
|
## Ziel
|
||||||
|
|
||||||
@@ -63,3 +63,4 @@ Regel:
|
|||||||
1. Keine impliziten Extension-Standards erfinden.
|
1. Keine impliziten Extension-Standards erfinden.
|
||||||
2. Erweiterungen explizit als Out-of-Scope kennzeichnen.
|
2. Erweiterungen explizit als Out-of-Scope kennzeichnen.
|
||||||
3. Nur dokumentieren, was bereits verbindlich im Repo festgelegt ist.
|
3. Nur dokumentieren, was bereits verbindlich im Repo festgelegt ist.
|
||||||
|
4. Vor Implementierungsstart die Vorbedingungen aus `/docs/reference-extension-readiness.md` prüfen.
|
||||||
|
|||||||
41
docs/reference-extension-readiness.md
Normal file
41
docs/reference-extension-readiness.md
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
# Extension-Readiness (ohne Architektur-Festlegung)
|
||||||
|
|
||||||
|
Letzte Aktualisierung: 2026-03-09
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Verbindliche Vorbedingungen fuer spaetere eigenstaendige Module festhalten, ohne jetzt eine konkrete Extension-Mechanik (Hooks/Lifecycle/Loader) zu standardisieren.
|
||||||
|
|
||||||
|
## Readiness-Checkliste vor neuem Modul
|
||||||
|
|
||||||
|
1. **Modulgrenzen klarziehen**
|
||||||
|
- Betroffene Schichten benoennen (`pages -> Service -> Repository`).
|
||||||
|
- Keine SQL-/Business-Logik in Templates oder `pages/*.phtml`.
|
||||||
|
2. **Contracts definieren**
|
||||||
|
- Oeffentliche API-/UI-Contracts dokumentieren (Inputs, Outputs, Fehlerfaelle).
|
||||||
|
- Bei API-Aenderungen `docs/openapi.yaml` im selben Merge pflegen.
|
||||||
|
3. **Security + Scope absichern**
|
||||||
|
- AuthZ/RBAC serverseitig pruefen.
|
||||||
|
- Tenant-Scope serverseitig pruefen.
|
||||||
|
- POST-Mutationen mit CSRF absichern.
|
||||||
|
4. **Testbarkeit und Gates**
|
||||||
|
- Architektur- und Domain-Tests fuer neue Logik ergaenzen.
|
||||||
|
- Relevante Quality Gates (`QG-*`) im Merge reporten.
|
||||||
|
5. **Daten- und Betriebsfaehigkeit**
|
||||||
|
- Schema-/Datenaenderungen fuer Bestandsinstallationen idempotent in `db/updates/*.sql`.
|
||||||
|
- Logs/Audit ohne unredacted PII/Secrets.
|
||||||
|
|
||||||
|
## Bewusst Out of Scope in diesem Stand
|
||||||
|
|
||||||
|
- Kein standardisierter Extension-Loader.
|
||||||
|
- Kein Hook-/Plugin-Lifecycle.
|
||||||
|
- Keine verbindlichen Modul-Ablageorte ausserhalb bestehender Schichten.
|
||||||
|
|
||||||
|
## Entscheidungslog fuer spaetere Standardisierung
|
||||||
|
|
||||||
|
Wenn die Extension-Mechanik spaeter konkretisiert wird, muss die Entscheidung mindestens diese Punkte mitliefern:
|
||||||
|
|
||||||
|
1. Aktivierung/Deaktivierung und Reihenfolge von Modulen.
|
||||||
|
2. Versionierung und Migrationsstrategie pro Modul.
|
||||||
|
3. Sicherheits- und Tenant-Isolation pro Erweiterung.
|
||||||
|
4. Test- und Rollback-Strategie fuer Modul-Deployments.
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# Konventionen (kurz und verbindlich)
|
# Konventionen (kurz und verbindlich)
|
||||||
|
|
||||||
Letzte Aktualisierung: 2026-03-06
|
Letzte Aktualisierung: 2026-03-09
|
||||||
|
|
||||||
## 1) Code
|
## 1) Code
|
||||||
|
|
||||||
@@ -44,7 +44,7 @@ Letzte Aktualisierung: 2026-03-06
|
|||||||
|
|
||||||
- Templates nur für Rendering.
|
- Templates nur für Rendering.
|
||||||
- UI-Texte über `t('...')`.
|
- UI-Texte über `t('...')`.
|
||||||
- Strukturregeln in `docs/frontend-css.md` und `docs/frontend-javascript.md`.
|
- Strukturregeln in `/docs/reference-frontend-css.md` und `/docs/reference-frontend-javascript.md`.
|
||||||
|
|
||||||
## 6) Mindestchecks vor Merge
|
## 6) Mindestchecks vor Merge
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
# lib-Standards
|
# lib-Standards
|
||||||
|
|
||||||
Letzte Aktualisierung: 2026-03-06
|
Letzte Aktualisierung: 2026-03-09
|
||||||
|
|
||||||
Praktische Regeln nur für `lib/**`. Ergänzt `docs/architektur.md`.
|
Praktische Regeln nur für `lib/**`. Ergänzt `/docs/explanation-architektur.md`.
|
||||||
|
|
||||||
## 1) Repository-Regeln
|
## 1) Repository-Regeln
|
||||||
|
|
||||||
|
|||||||
@@ -63,5 +63,41 @@ class CodexSkillsContractTest extends TestCase
|
|||||||
$this->assertStringContainsString('--check', $script);
|
$this->assertStringContainsString('--check', $script);
|
||||||
$this->assertStringContainsString('--apply', $script);
|
$this->assertStringContainsString('--apply', $script);
|
||||||
$this->assertStringContainsString('mode="check"', $script);
|
$this->assertStringContainsString('mode="check"', $script);
|
||||||
|
$this->assertStringContainsString('"core-guardrails"', $script);
|
||||||
|
$this->assertStringContainsString('"starterkit-planner"', $script);
|
||||||
|
$this->assertStringContainsString('"starterkit-grid-standards"', $script);
|
||||||
|
$this->assertStringContainsString('"starterkit-php-style-ci"', $script);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testDocumentationLinksResolveInReadmeDocsAndSourceMap(): void
|
||||||
|
{
|
||||||
|
$files = [
|
||||||
|
'README.md',
|
||||||
|
'tools/codex-skills/core-guardrails/references/source-map.md',
|
||||||
|
];
|
||||||
|
|
||||||
|
$docFiles = glob($this->projectRootPath() . '/docs/*.md');
|
||||||
|
$this->assertNotFalse($docFiles, 'Failed to enumerate docs/*.md files.');
|
||||||
|
foreach ($docFiles as $fullPath) {
|
||||||
|
$files[] = 'docs/' . basename($fullPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($files as $file) {
|
||||||
|
$content = $this->readProjectFile($file);
|
||||||
|
preg_match_all('/(?<![A-Za-z0-9_])\\/?docs\\/[a-z0-9_\\/-]+\\.md\\b/', $content, $matches);
|
||||||
|
foreach (array_unique($matches[0]) as $link) {
|
||||||
|
$normalized = ltrim($link, '/');
|
||||||
|
$absolute = $this->projectRootPath() . '/' . $normalized;
|
||||||
|
$this->assertFileExists($absolute, sprintf('Broken docs link "%s" in %s', $link, $file));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testDocsSkillsAuditPolicyExists(): void
|
||||||
|
{
|
||||||
|
$policy = $this->readProjectFile('agent-system/checks/docs-skills-audit-policy.md');
|
||||||
|
$this->assertStringContainsString('P0', $policy);
|
||||||
|
$this->assertStringContainsString('P1', $policy);
|
||||||
|
$this->assertStringContainsString('DOCS-SKILLS-AUDIT-00x', $policy);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,24 +2,24 @@
|
|||||||
|
|
||||||
## Kernregeln
|
## Kernregeln
|
||||||
|
|
||||||
- Architektur- und Schichtgrenzen: `/docs/architektur.md`
|
- Architektur- und Schichtgrenzen: `/docs/explanation-architektur.md`
|
||||||
- `lib/**`-Regeln und Instanziierung: `/docs/lib-standards.md`
|
- `lib/**`-Regeln und Instanziierung: `/docs/reference-lib-standards.md`
|
||||||
- Kurzkonventionen: `/docs/konventionen.md`
|
- Kurzkonventionen: `/docs/reference-konventionen.md`
|
||||||
- Request/Input/Validation: `/docs/request-input-validation.md`
|
- Request/Input/Validation: `/docs/howto-request-input-validation.md`
|
||||||
|
|
||||||
## UI-/Frontend-Contracts
|
## UI-/Frontend-Contracts
|
||||||
|
|
||||||
- JavaScript-Standards und Wrapper: `/docs/frontend-javascript.md`
|
- JavaScript-Standards und Wrapper: `/docs/reference-frontend-javascript.md`
|
||||||
- CSS-Standards und Scope-Regeln: `/docs/frontend-css.md`
|
- CSS-Standards und Scope-Regeln: `/docs/reference-frontend-css.md`
|
||||||
- DoD-Checks: `/docs/entwickler-checkliste.md`
|
- DoD-Checks: `/docs/reference-entwickler-checkliste.md`
|
||||||
- Rollen-Workflow (Planner/Executor/Reviewer/Finalizer): `/docs/agents/overview.md`
|
- Rollen-Workflow (Planner/Executor/Reviewer/Finalizer): `/docs/reference-agents-overview.md`
|
||||||
|
|
||||||
## Security / RBAC
|
## Security / RBAC
|
||||||
|
|
||||||
- RBAC-Erweiterungen: `/docs/rbac-permissions-playbook.md`
|
- RBAC-Erweiterungen: `/docs/howto-rbac-permissions-playbook.md`
|
||||||
- Sicherheitsmodell: `/docs/sicherheitsmodell.md`
|
- Sicherheitsmodell: `/docs/explanation-sicherheitsmodell.md`
|
||||||
|
|
||||||
## Betrieb und Qualitaetschecks
|
## Betrieb und Qualitaetschecks
|
||||||
|
|
||||||
- Entwickler-Checkliste: `/docs/entwickler-checkliste.md`
|
- Entwickler-Checkliste: `/docs/reference-entwickler-checkliste.md`
|
||||||
- Architektur-Request-Flow: `/docs/03-architektur-request-flow.md`
|
- Architektur-Request-Flow: `/docs/tutorial-04-architektur-request-flow.md`
|
||||||
|
|||||||
Reference in New Issue
Block a user