📦 deps(thirdparty): update snapshots
This commit is contained in:
@@ -98,41 +98,11 @@ if not exist "%SKILLS_LIST_FILE%" (
|
||||
if "!EXTRA_ARGS!"=="" (
|
||||
echo Using default essentials...
|
||||
> "%SKILLS_LIST_FILE%" (
|
||||
echo api-security-best-practices
|
||||
echo auth-implementation-patterns
|
||||
echo backend-security-coder
|
||||
echo frontend-security-coder
|
||||
echo cc-skill-security-review
|
||||
echo pci-compliance
|
||||
echo frontend-design
|
||||
echo react-best-practices
|
||||
echo react-patterns
|
||||
echo nextjs-best-practices
|
||||
echo tailwind-patterns
|
||||
echo form-cro
|
||||
echo seo-audit
|
||||
echo ui-ux-pro-max
|
||||
echo 3d-web-experience
|
||||
echo canvas-design
|
||||
echo mobile-design
|
||||
echo scroll-experience
|
||||
echo senior-fullstack
|
||||
echo frontend-developer
|
||||
echo backend-dev-guidelines
|
||||
echo api-patterns
|
||||
echo database-design
|
||||
echo stripe-integration
|
||||
echo agent-evaluation
|
||||
echo langgraph
|
||||
echo mcp-builder
|
||||
echo prompt-engineering
|
||||
echo ai-agents-architect
|
||||
echo rag-engineer
|
||||
echo llm-app-patterns
|
||||
echo rag-implementation
|
||||
echo prompt-caching
|
||||
echo context-window-management
|
||||
echo langfuse
|
||||
echo concise-planning
|
||||
echo git-pushing
|
||||
echo kaizen
|
||||
echo lint-and-validate
|
||||
echo systematic-debugging
|
||||
)
|
||||
) else (
|
||||
:: Use only literal arguments that match the safe skill-id allowlist
|
||||
|
||||
@@ -161,7 +161,7 @@ fi
|
||||
|
||||
if [[ ! -s "$SKILLS_LIST_FILE" ]]; then
|
||||
if [[ "${#EXTRA_ARGS[@]}" -eq 0 ]]; then
|
||||
printf '%s\n' brainstorming systematic-debugging test-driven-development >"$SKILLS_LIST_FILE"
|
||||
printf '%s\n' concise-planning git-pushing kaizen lint-and-validate systematic-debugging >"$SKILLS_LIST_FILE"
|
||||
else
|
||||
: >"$SKILLS_LIST_FILE"
|
||||
for arg in "${EXTRA_ARGS[@]}"; do
|
||||
|
||||
@@ -7,8 +7,8 @@ set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
GLOSSARY_FILE="$PROJECT_ROOT/docs_zh-CN/.glossary.json"
|
||||
OUTPUT_FILE="$PROJECT_ROOT/docs_zh-CN/glossary-consistency-report.txt"
|
||||
GLOSSARY_FILE="${GLOSSARY_FILE:-$PROJECT_ROOT/docs_zh-CN/.glossary.json}"
|
||||
OUTPUT_FILE="${GLOSSARY_OUTPUT_FILE:-$PROJECT_ROOT/docs_zh-CN/glossary-consistency-report.txt}"
|
||||
|
||||
# Check if jq is installed
|
||||
if ! command -v jq &> /dev/null; then
|
||||
@@ -71,15 +71,23 @@ fi
|
||||
|
||||
# Extract term count
|
||||
TERM_COUNT=$(jq -r '.metadata.total_terms // 0' "$GLOSSARY_FILE")
|
||||
ACTUAL_TERM_COUNT=$(jq -r '.terms | if type == "object" then length else -1 end' "$GLOSSARY_FILE")
|
||||
VALIDATION_FAILED=0
|
||||
|
||||
{
|
||||
echo "GLOSSARY STATISTICS"
|
||||
echo "==================="
|
||||
echo ""
|
||||
echo "Total Terms: $TERM_COUNT"
|
||||
echo "Actual Terms: $ACTUAL_TERM_COUNT"
|
||||
echo ""
|
||||
} >> "$OUTPUT_FILE"
|
||||
|
||||
if [[ "$ACTUAL_TERM_COUNT" -lt 0 || "$TERM_COUNT" -ne "$ACTUAL_TERM_COUNT" ]]; then
|
||||
echo "ERROR: metadata.total_terms does not match the terms object." >> "$OUTPUT_FILE"
|
||||
VALIDATION_FAILED=1
|
||||
fi
|
||||
|
||||
if [[ "$TERM_COUNT" -eq 0 ]]; then
|
||||
echo "Glossary is empty. No terms to analyze." >> "$OUTPUT_FILE"
|
||||
else
|
||||
@@ -87,7 +95,7 @@ else
|
||||
{
|
||||
echo "Top 10 Terms (alphabetical):"
|
||||
echo ""
|
||||
jq -r '.terms | to_entries | sort_by(.key) | .[0:10][] | " \(.key): \(.value.zh // (if .value.translations then .value.translations[0] else "N/A" end))"' "$GLOSSARY_FILE" 2>/dev/null || echo " Unable to extract terms"
|
||||
jq -r '.terms | to_entries | sort_by(.key) | .[0:10][] | " \(.key): \(.value.translation // "N/A")"' "$GLOSSARY_FILE" 2>/dev/null || echo " Unable to extract terms"
|
||||
echo ""
|
||||
} >> "$OUTPUT_FILE"
|
||||
|
||||
@@ -96,10 +104,11 @@ else
|
||||
echo "Field Validation:"
|
||||
echo ""
|
||||
MISSING_TRANSLATIONS_FILE="$(mktemp)"
|
||||
jq -r '.terms | to_entries[] | select(.value.zh == null and (.value.translations | not) ) | " Missing translation: \(.key)"' "$GLOSSARY_FILE" > "$MISSING_TRANSLATIONS_FILE"
|
||||
jq -r '.terms | to_entries[] | select((.value | type) != "object" or (.value.translation | type) != "string" or (.value.translation | gsub("\\s"; "") | length) == 0) | " Missing translation: \(.key)"' "$GLOSSARY_FILE" > "$MISSING_TRANSLATIONS_FILE"
|
||||
|
||||
if [[ -s "$MISSING_TRANSLATIONS_FILE" ]]; then
|
||||
cat "$MISSING_TRANSLATIONS_FILE" >> "$OUTPUT_FILE"
|
||||
VALIDATION_FAILED=1
|
||||
else
|
||||
echo " All terms have translations." >> "$OUTPUT_FILE"
|
||||
fi
|
||||
@@ -134,7 +143,11 @@ fi
|
||||
echo ""
|
||||
echo "VALIDATION COMPLETE"
|
||||
echo ""
|
||||
echo "Glossary file is valid and ready for use."
|
||||
if [[ "$VALIDATION_FAILED" -eq 0 ]]; then
|
||||
echo "Glossary file is valid and ready for use."
|
||||
else
|
||||
echo "Glossary file is invalid; see errors above."
|
||||
fi
|
||||
} >> "$OUTPUT_FILE"
|
||||
|
||||
echo "Glossary validation complete. Report saved to:"
|
||||
@@ -142,4 +155,9 @@ echo " docs_zh-CN/glossary-consistency-report.txt"
|
||||
echo ""
|
||||
echo "Summary:"
|
||||
echo " Total Terms: $TERM_COUNT"
|
||||
echo " Status: Valid ✓"
|
||||
if [[ "$VALIDATION_FAILED" -eq 0 ]]; then
|
||||
echo " Status: Valid ✓"
|
||||
else
|
||||
echo " Status: Invalid ✗"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -21,6 +21,7 @@ import sys
|
||||
PROJECT_ROOT = Path.cwd()
|
||||
OUTPUT_FILE = PROJECT_ROOT / "docs_zh-CN" / "link-validation-report.txt"
|
||||
SCAN_ROOTS = [Path("README.md"), Path("docs"), Path("docs_zh-CN")]
|
||||
EXCLUDED_PATH_PARTS = {("docs", "maintainers", "backups")}
|
||||
LINK_RE = re.compile(r"(?<!!)\[[^\]]+\]\(([^)]+)\)")
|
||||
|
||||
|
||||
@@ -30,7 +31,14 @@ def iter_markdown_files() -> list[Path]:
|
||||
if root.is_file():
|
||||
files.append(root)
|
||||
elif root.is_dir():
|
||||
files.extend(sorted(root.rglob("*.md")))
|
||||
for candidate in sorted(root.rglob("*.md")):
|
||||
if any(
|
||||
tuple(candidate.parts[index : index + len(parts)]) == parts
|
||||
for parts in EXCLUDED_PATH_PARTS
|
||||
for index in range(len(candidate.parts) - len(parts) + 1)
|
||||
):
|
||||
continue
|
||||
files.append(candidate)
|
||||
return sorted(files)
|
||||
|
||||
|
||||
@@ -109,6 +117,7 @@ def main() -> int:
|
||||
"- README.md",
|
||||
"- docs",
|
||||
"- docs_zh-CN",
|
||||
"- excludes docs/maintainers/backups historical snapshots",
|
||||
"",
|
||||
"Internal links:",
|
||||
f"- Checked: {checked}",
|
||||
|
||||
Reference in New Issue
Block a user