Add gdscript and godot package definitions - #7
Merged
Conversation
Two unversioned definitions built from godotengine/godot-docs at ref
stable (Godot 4.7):
gdscript/gdscript docs_path tutorials/scripting/gdscript
9 files, 129 sections, 60,921 tokens, 0 skipped
godot/godot whole repo
1,604 files, 14,488 sections, 8,136,611 tokens, 0 skipped
Built at godot-docs 6d86d7c7f3b8f4f56c71e113022d72fe80b2c84d and
reproduced independently three times across node 22/24 and context
1.2.4/1.2.5 with identical file, section and token counts.
gdscript is scoped to the GDScript subtree rather than to
tutorials/scripting because the wider path is 40% C# by section count
(208 of 515), and C# wins the ranking for the most common lookups --
under the product's own bm25 weights, none of the top five results for
"signal" is GDScript. Git sources have no exclude_paths, so narrowing
the path is the only way to get a GDScript package that returns
GDScript. Everything the narrow path omits, including the @GDscript and
@globalscope built-ins in classes/, is covered by the godot package, and
each description points at the other.
godot-docs is licensed CC-BY 3.0 Unported.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TWBBpEmsr5oyEhamfREYNx
TeeJS
added a commit
that referenced
this pull request
Sep 5, 2026
Two unversioned definitions built from godotengine/godot-docs at ref
stable (Godot 4.7):
gdscript/gdscript docs_path tutorials/scripting/gdscript
9 files, 129 sections, 60,921 tokens, 0 skipped
godot/godot whole repo
1,604 files, 14,488 sections, 8,136,611 tokens, 0 skipped
Built at godot-docs 6d86d7c7f3b8f4f56c71e113022d72fe80b2c84d and
reproduced independently three times across node 22/24 and context
1.2.4/1.2.5 with identical file, section and token counts.
gdscript is scoped to the GDScript subtree rather than to
tutorials/scripting because the wider path is 40% C# by section count
(208 of 515), and C# wins the ranking for the most common lookups --
under the product's own bm25 weights, none of the top five results for
"signal" is GDScript. Git sources have no exclude_paths, so narrowing
the path is the only way to get a GDScript package that returns
GDScript. Everything the narrow path omits, including the @GDscript and
@globalscope built-ins in classes/, is covered by the godot package, and
each description points at the other.
godot-docs is licensed CC-BY 3.0 Unported.
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add GDScript and Godot Engine package definitions
Adds two registry definitions built from
godotengine/godot-docs:registry/gdscript/gdscript.yaml— the GDScript languageregistry/godot/godot.yaml— the Godot engine: full class reference + tutorialsBoth use the self-named-directory convention the registry README prescribes for projects
not distributed by a package manager, alongside
registry/python/python.yamlandregistry/java/java.yaml.Build results
Built at
godot-docscommit6d86d7c7f3b8f4f56c71e113022d72fe80b2c84d(branch
stable, 2026-08-05, = Godot 4.7):gdscript/gdscripttutorials/scripting/gdscriptgodot/godotZero skipped files in both.
.rstis already a supported input format, so no new parsingis required. Both definitions were validated by running the repository's own
loadDefinition()andlistDefinitions()— including the whole-tree scan, since one baddefinition fails the nightly publish for every other package.
Why
gdscriptis scoped narrowlytutorials/scripting/gdscriptyields 129 sections, which is below the README's "a fewhundred" guideline, so it is worth explaining why that is deliberate rather than a
misconfigured
docs_path.The obvious wider path,
tutorials/scripting, yields 515 sections — but they break down as:c_sharp/gdscript/scripting/rootcpp/debug/C# is the largest block in what would ship as a GDScript package, and it wins the most
important queries. Top-5 results from that build, ranked exactly as
search.tsranks them(
bm25(chunks_fts, 5.0, 10.0, 1.0) * -1,ORDER BY score DESC, afterbuildQuery()):signal→c_sharp_signals,how_to_read_the_godot_api,cross_language_scripting,c_sharp_signals,c_sharp_signals— none of the five is GDScriptawait→c_sharp_differencesat Limit registry download sizes #1lambda→ one GDScript hit, then four C# pagesexport→ C# at feat(serve): cap concurrent HTTP sessions and reap idle ones #2 and Harden the Context runtime image #3Since git sources have no
exclude_paths(only zip sources do), the C# and C++ subtreescannot be pruned from
tutorials/scripting. Narrowing the path is the only way to get aGDScript package that returns GDScript. The same queries against the narrow build return
gdscript_basics: Signals×3,gdscript_exports×4, andstatic_typing×4 — every top hiton target.
One further consequence of the narrow scope, stated plainly because a reviewer will hit it:
when a query matches a built-in function name, the
gdscriptpackage returnslexically-plausible but topically-wrong results rather than nothing, because those words
appear incidentally in tutorial prose.
gdscriptpackage returnspreloadgdscript_basics: Keywords,Classesclasses/class_@gdscript.rstrangegdscript_exports: Limiting editor input rangesclasses/class_@gdscript.rstpush_errorstatic_typing: How to use static typingclasses/class_@globalscope.rstget_nodegdscript_styleguide: Static typingclasses/class_node.rstinstclasses/class_@gdscript.rstAll five resolve correctly in the
godotpackage. This is intended routing rather than adefect —
classes/is unreachable from any tutorial path — but it is why thegdscriptdescription names the built-ins explicitly and points at the
godotpackage for them,instead of only mentioning "engine APIs".
Everything the narrow path omits (autoloads, resources, groups, the scene tree,
overridable functions, debugging, multiplayer RPC) is covered by the
godotpackage,which also carries
class_@gdscript.rstandclass_@globalscope.rst— the built-infunctions (
preload,load,assert,range,str) that live inclasses/and areunreachable from any tutorial path. Each definition's
descriptionpoints at the other soan agent can route between them.
Notes for reviewers
ref: stable—godot-docshas no git tags at all, and no ReadTheDocs htmlziparchives are published (all such URLs 404), so neither the tag-pattern nor the
versioned-by-zip shape applies. The
stablebranch tracks the current Godot release andadvances on its own, and
source_commitis populated so skip-if-unchanged works.doc_pathvalues with backslashes(
tutorials\scripting\...). That is a local artifact ofreadLocalDocsFileson Windows,not a problem with these definitions; Linux CI produces forward slashes. Please don't
"fix" the YAML paths for it.
listDefinitions()on Windows throwsDefinition name "@apollo/client" doesn't match filename "@apollo\client.yaml", becauseloadDefinition()compares arelative()path against a/-joined name. It reproduceson
mainwith these definitions removed, so it is not caused by this PR and does notaffect Linux CI. Flagging it rather than fixing it here to keep this PR to one concern; a
split(sep).join("/")on the derived name would resolve it.godotis 48.03 MB, against the client's 512 MBDEFAULT_MAX_DOWNLOAD_BYTESand fetched on demand. A
classes-only variant was measured (10,960 sections, 38.8 MB);it saves 9 MB and loses every tutorial, so it was rejected.
Attribution
godotengine/godot-docsis licensed CC-BY 3.0 Unported (verified from itsLICENSE.txt). Both definitions carryrepository:pointing at the upstream repo.Relationship to the upstream PR
The same two files are also proposed upstream as
neuledge/context#133. This PR is
independent of it: merging here puts the definitions in this fork's
registry/, which iswhat the fork's own
registry-updateworkflow reads, so the packages can be built andpublished to this fork's
REGISTRY_SERVER_URLwithout waiting on upstream review.The file contents on both branches are byte-identical (verified by
git hash-object), soif upstream merges neuledge#133 unchanged, a later sync from
upstream/mainresolves silently —both sides added the same paths with the same content. If upstream requests changes during
review, the sync becomes an add/add conflict resolved by taking upstream's version.
After merging, the packages are published by running the Registry Update workflow
(
workflow_dispatch) rather than waiting for its 06:00 UTC schedule. Note that thescheduled run passes
--since 2; unversioned definitions like these bypass that filter(
version-check.ts:48-61returns a singlelatestversion before--sinceis applied),so no workflow change is needed.