feat: assign tiers to new anchors and regenerate all metadata#209
Conversation
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (16)
ÜberblickDas Pull Request reorganisiert die Dokumentationsanker umfassend, fügt neue Anker in mehreren Kategorien hinzu (z. B. GoF-Muster, SOLID-Prinzipien, Test-Doubles), aktualisiert Metadaten mit Tier-Feldern und synchronisiert alle generierten Website-Dateien (JSON und Sitemap). Änderungen
Geschätzter Code-Review-Aufwand🎯 3 (Moderat) | ⏱️ ~25 Minuten Möglicherweise verwandte Pull Requests
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Tier assignments (all ★★★ self-standing): - Definition of Done: tier 3 — "apply a Definition of Done" works standalone - Fagan Inspection: tier 3 — "conduct a Fagan Inspection" works standalone - INVEST: tier 3 — "follow INVEST criteria" works standalone - PRD: tier 3 — "write a PRD" works standalone - GitHub Flow: tier 3 — "use GitHub Flow" works standalone Regenerated files: - metadata.json (98 → 104 anchors) - categories.json (100 → 104 anchors) - sitemap.xml (55 → 104 anchors) - llms.txt (74 → 105 anchors) - all-anchors.adoc Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
b0fd102 to
76283b6
Compare
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/all-anchors.adoc`:
- Around line 104-107: Die neuen Anchors definition-of-done, fagan-inspection,
github-flow, invest und prd wurden in docs/all-anchors.adoc aufgenommen but are
missing from the AgentSkill catalog; update
skill/semantic-anchor-translator/references/catalog.md by adding entries for
each of these anchors following the existing catalog entry format (same
heading/ID, anchor name, short description and any tags/aliases used elsewhere)
so the semantic-anchor-translator can recognize and suggest them (verify
formatting matches other entries in catalog.md).
In `@docs/anchors/github-flow.de.adoc`:
- Line 7: The document shows a mismatch between the PR description "GitHub Flow
— ★☆☆ — Simple workflow (branch, PR, merge, deploy); shallow activation" and the
front-matter setting :tier: 3; update the front-matter to match the description
by changing the token ":tier: 3" to ":tier: 1" (or alternatively, if you intend
a Tier 3 workflow, adjust the PR description/stars to ★★★ and the accompanying
rationale); ensure the change is applied to the line containing the :tier: value
so the star-rating and tier are consistent.
In `@docs/anchors/prd.de.adoc`:
- Line 7: Das Skript scripts/extract-metadata.js parst das :tier:-Attribut ohne
Validierung; fügen Sie unmittelbar nach der Stelle, an der der raw tier-Wert
geparst wird (die Variable/Bezeichnung "tier" bzw. "parsedTier" im Skript) eine
Prüfung ein, die sicherstellt, dass der Wert eine ganze Zahl und einer der
erlaubten Werte 1, 2 oder 3 ist; bei ungültigem Wert werfen Sie eine klare
Error-Exception oder loggen mit processLogger/error und brechen den Lauf (oder
lassen den PR-Fail sichtbar), damit fehlerhafte tier-Angaben (z. B. 0, -1, 99,
non-int) nicht stillschweigend akzeptiert werden.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yml
Review profile: CHILL
Plan: Pro
Run ID: 6e73f062-dbeb-4f89-a985-6d6c4742d9f3
📒 Files selected for processing (16)
docs/all-anchors.adocdocs/anchors/definition-of-done.adocdocs/anchors/definition-of-done.de.adocdocs/anchors/fagan-inspection.adocdocs/anchors/fagan-inspection.de.adocdocs/anchors/github-flow.adocdocs/anchors/github-flow.de.adocdocs/anchors/invest.adocdocs/anchors/prd.adocdocs/anchors/prd.de.adocwebsite/public/data/anchors.jsonwebsite/public/data/categories.jsonwebsite/public/data/metadata.jsonwebsite/public/data/roles.jsonwebsite/public/llms.txtwebsite/public/sitemap.xml
| include::anchors/definition-of-done.adoc[leveloffset=+2] | ||
|
|
||
| include::anchors/github-flow.adoc[leveloffset=+2] | ||
|
|
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
CATALOG="skill/semantic-anchor-translator/references/catalog.md"
if [ ! -f "$CATALOG" ]; then
echo "Datei fehlt: $CATALOG"
exit 1
fi
missing=0
for id in definition-of-done fagan-inspection github-flow invest prd; do
if ! rg -n --fixed-strings "$id" "$CATALOG" >/dev/null; then
echo "Fehlt im Katalog: $id"
missing=1
fi
done
if [ "$missing" -eq 0 ]; then
echo "Alle erwarteten Anchors sind im Katalog vorhanden."
fiRepository: LLM-Coding/Semantic-Anchors
Length of output: 219
Semantic-Anchor-Katalog für neue Anchors aktualisieren erforderlich.
Die neuen Anchors (definition-of-done, fagan-inspection, github-flow, invest, prd) wurden in docs/all-anchors.adoc erfasst, sind aber nicht in der AgentSkill-Katalogdatei skill/semantic-anchor-translator/references/catalog.md enthalten. Dies verhindert, dass AI-Agenten diese Anchors zuverlässig erkennen und vorschlagen können. Bitte aktualisieren Sie den Katalog entsprechend.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/all-anchors.adoc` around lines 104 - 107, Die neuen Anchors
definition-of-done, fagan-inspection, github-flow, invest und prd wurden in
docs/all-anchors.adoc aufgenommen but are missing from the AgentSkill catalog;
update skill/semantic-anchor-translator/references/catalog.md by adding entries
for each of these anchors following the existing catalog entry format (same
heading/ID, anchor name, short description and any tags/aliases used elsewhere)
so the semantic-anchor-translator can recognize and suggest them (verify
formatting matches other entries in catalog.md).
| :related: conventional-commits, semantic-versioning | ||
| :proponents: Scott Chacon | ||
| :tags: git, branching, pull-request, continuous-delivery, workflow, feature-branch, code-review, main-branch | ||
| :tier: 3 |
There was a problem hiding this comment.
Inkonsistenz zwischen PR-Beschreibung und Code!
Die PR-Beschreibung gibt "GitHub Flow — ★☆☆ — Simple workflow (branch, PR, merge, deploy); shallow activation" an, was auf Tier 1 hindeutet, aber der Code implementiert :tier: 3.
Sternbewertung vs. Tier:
- ★☆☆ (1 Stern) = Tier 1 (flach/einfach)
- ★★☆ (2 Sterne) = Tier 2 (moderat)
- ★★★ (3 Sterne) = Tier 3 (tief/komplex)
Die Begründung "shallow activation" und "simple workflow" sprechen klar für Tier 1, nicht Tier 3.
🔧 Vorgeschlagene Korrektur
-:tier: 3
+:tier: 1📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| :tier: 3 | |
| :tier: 1 |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/anchors/github-flow.de.adoc` at line 7, The document shows a mismatch
between the PR description "GitHub Flow — ★☆☆ — Simple workflow (branch, PR,
merge, deploy); shallow activation" and the front-matter setting :tier: 3;
update the front-matter to match the description by changing the token ":tier:
3" to ":tier: 1" (or alternatively, if you intend a Tier 3 workflow, adjust the
PR description/stars to ★★★ and the accompanying rationale); ensure the change
is applied to the line containing the :tier: value so the star-rating and tier
are consistent.
docs/anchors/prd.de.adoc
Outdated
| :related: moscow, user-story-mapping, impact-mapping, ears-requirements | ||
| :proponents: Marty Cagan, Roman Pichler | ||
| :tags: product, requirements, specification, planning, stakeholders | ||
| :tier: 2 |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Beschreibung: Überprüfe die Tier-Validierung im Extraktionsskript.
echo "=== Aktueller Extraktionscode für tier ==="
rg -A 20 "tierAttr" scripts/extract-metadata.js
echo -e "\n=== Suche nach Validierung oder Constraints ==="
rg -i "tier.*valid|tier.*range|tier.*enum|tier.*1.*3" scripts/extract-metadata.js
echo -e "\n=== Alle aktuellen Tier-Werte in Anchors ==="
fd -e adoc -x rg "^:tier:" {} \; docs/anchors/Repository: LLM-Coding/Semantic-Anchors
Length of output: 1169
🏁 Script executed:
#!/bin/bash
echo "=== Alle aktuellen Tier-Werte in Anchors ==="
find docs/anchors -name "*.adoc" -exec grep -H "^:tier:" {} \;
echo -e "\n=== Häufigkeitsverteilung der Tier-Werte ==="
find docs/anchors -name "*.adoc" -exec grep "^:tier:" {} \; | sort | uniq -c
echo -e "\n=== Nächster Kontext nach :tier: in allen Dateien ==="
find docs/anchors -name "*.adoc" -exec grep -A 1 "^:tier:" {} + | head -40Repository: LLM-Coding/Semantic-Anchors
Length of output: 7555
🏁 Script executed:
#!/bin/bash
echo "=== Template für Tier-Definition ==="
cat -n docs/anchors/_template.adoc | head -30
echo -e "\n=== Suche nach Tier-Dokumentation ==="
rg -i "tier.*1.*2.*3|tier.*simple|tier.*moderate|tier.*complex|tier.*\*" docs/ --type adoc -B 2 -A 2
echo -e "\n=== README oder Dokumentation zu Tiers ==="
find docs -name "README*" -o -name "*tier*" -o -name "*guide*" | head -10
cat -n README.md 2>/dev/null | head -50Repository: LLM-Coding/Semantic-Anchors
Length of output: 3645
🏁 Script executed:
#!/bin/bash
echo "=== Gesamte Validierungssektion in extract-metadata.js ==="
rg -B 30 -A 5 "const errors = \[\]" scripts/extract-metadata.js
echo -e "\n=== Dateistruktur extract-metadata.js ==="
wc -l scripts/extract-metadata.jsRepository: LLM-Coding/Semantic-Anchors
Length of output: 2221
Tier-Validierung im Extraktionsskript hinzufügen
Das Skript scripts/extract-metadata.js parst den :tier:-Attributwert ohne Validierung. Jeder ganzzahlige Wert wird akzeptiert. Ungültige Tier-Werte (z.B. tier: 99, tier: -1, tier: 0) würden ohne Fehlermeldung durchgelassen.
Die Codebase verwendet konsistent Tier-Werte zwischen 1 und 3 (Häufigkeitsverteilung: 21× tier:1, 11× tier:2, 105× tier:3). Dies zeigt eine etablierte Constraint, die technisch aber nicht erzwungen wird.
Fügen Sie nach Zeile 91 in scripts/extract-metadata.js Validierung hinzu:
Validierungscode
const tierAttr = attributes.tier
- if (tierAttr) anchor.tier = parseInt(tierAttr, 10)
+ if (tierAttr) {
+ const tier = parseInt(tierAttr, 10)
+ if (tier < 1 || tier > 3) {
+ errors.push(`Invalid :tier: value ${tier}. Must be 1, 2, or 3`)
+ } else {
+ anchor.tier = tier
+ }
+ }Hinweis: Die Semantik der Tier-Werte (1, 2, 3) ist nicht dokumentiert. Diese sollte im Template (docs/anchors/_template.adoc) oder in der README.md definiert werden.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/anchors/prd.de.adoc` at line 7, Das Skript scripts/extract-metadata.js
parst das :tier:-Attribut ohne Validierung; fügen Sie unmittelbar nach der
Stelle, an der der raw tier-Wert geparst wird (die Variable/Bezeichnung "tier"
bzw. "parsedTier" im Skript) eine Prüfung ein, die sicherstellt, dass der Wert
eine ganze Zahl und einer der erlaubten Werte 1, 2 oder 3 ist; bei ungültigem
Wert werfen Sie eine klare Error-Exception oder loggen mit processLogger/error
und brechen den Lauf (oder lassen den PR-Fail sichtbar), damit fehlerhafte
tier-Angaben (z. B. 0, -1, 99, non-int) nicht stillschweigend akzeptiert werden.
Summary
Assigns tiers to all newly added anchors and regenerates stale metadata files.
Tier assignments
STRIDE and LINDDUN already have
:tier: 3— may warrant reconsideration in a separate PR.Regenerated files
metadata.jsoncategories.jsonsitemap.xmlllms.txtall-anchors.adocTest plan
🤖 Generated with Claude Code
Summary by CodeRabbit
Release Notes
Documentation
Chores