feat(docs): enrich node doc.md (deps, schema, classes, source) and retire per-node README#1242
feat(docs): enrich node doc.md (deps, schema, classes, source) and retire per-node README#1242meetp06 wants to merge 1 commit into
Conversation
…-org#1239) Make each node's co-located doc.md the single source of node documentation. Generator (nodes/scripts/gen-node-tables.mjs) — the generated block (between the ROCKETRIDE:GENERATED:PARAMS markers; hand prose untouched) now also emits: - Schema fields: per-service services.json field detail (name, type, title/description, const/default), multi-service aware. - Dependencies: parsed from requirements.txt (comments/blank lines dropped, version pins kept). - Classes: top-level Python classes per node, their bases, and public method signatures + first-line docstring. - Source: link to the node's directory on the repo's default branch (derived, not hard-coded; falls back to develop). New nodes/scripts/extract_node_api.py — stdlib-ast static parser (no node modules imported/executed) emitting the class JSON the generator consumes. Content: - Migrate llm_kimi (README-only) into a proper doc.md (supersedes rocketride-org#1232). - Verified audio_tts / memory_internal / memory_persistent doc.md already carry their README content (the only README "extras" were a redundant H1 and link path style), so nothing to fold. - Delete the 89 per-node README.md files (nodes/src/nodes/*/README.md), now redundant with doc.md and read by nothing (docs gather globs */doc.md). - Regenerate all doc.md; nodes:docs-generate is idempotent (re-run: no diff). Scope note: 12 nested subcomponent READMEs (e.g. core/parser, webhook/chat, agent_crewai/crewai_agent) are left in place — they document individual sub-services, are not subsets of any doc.md, and fall outside the per-node */README.md target. Folding them in needs nested doc.md support (the docs gather only globs one level), which is a separate change; flagged for the maintainer. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Important Review skippedToo many files! This PR contains 179 files, which is 29 over the limit of 150. To get a review, narrow the scope: ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (179)
You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
🤖 Internal: Discord sync markerAuto-managed by the Discord notification workflow. Stores the linked Discord message ID. Do not edit or delete. |
Summary
Make each node's co-located
doc.mdthe single source of node documentation: extend the generator so the auto-generated block also documents the node's dependencies, services.json schema fields, Python classes, and a source link, then delete the now-redundant per-nodeREADME.mdfiles.Closes #1239. Supersedes #1232 (the
llm_kimimigration is folded in here).Changes
Generator —
nodes/scripts/gen-node-tables.mjs(new sub-sections inside the existingROCKETRIDE:GENERATED:PARAMSmarkers; hand-authored prose untouched):services.jsonfield detail (name, type, title/description, const/default); multi-service aware.requirements.txt(drops#comments / blank lines, keeps version pins).origin/HEAD, falls back todevelop— tracks renames, not hard-coded).New —
nodes/scripts/extract_node_api.py: stdlib-aststatic parser. Never imports/executes node modules (they pull heavy optional deps not present at docs-build time). Emits the class JSON the generator consumes; the generator degrades gracefully (omits Classes) if no Python interpreter is present.Content
llm_kimi(was README-only) into a properdoc.md.audio_tts/memory_internal/memory_persistentdoc.mdalready carry their README content (the only README "extras" were a redundant H1 title and../vs/nodes/link style) — nothing to fold.README.mdfiles; regenerated alldoc.md.Scope decision — nested subcomponent READMEs
The issue's target is
nodes/src/nodes/*/README.md(per-node, "strict subset of doc.md"). There are also 12 nested subcomponent READMEs (e.g.core/parser,webhook/chat,agent_crewai/crewai_agent) that document individual sub-services. These are not subsets of anydoc.md, contain unique prose, and the docs gather only globs one level (*/doc.md), so they were never on the site. I left them in place rather than blind-delete unique docs. Fully satisfying "no README remains" would mean adding nesteddoc.mdsupport + extending the gather glob — a separate change. Flagging for your call, @joshuadarron.Verification
nodes:docs-generateis idempotent — re-run produces no diff.core(14 services),response(9),webhook(3),agent_crewai(3).extract_node_api.pypy_compile-clean; static-only (no imports executed).builder docs:buildandbuilder nodes:test— these are the CI gates. The generated content is plain markdown baked into the committeddoc.md, so the docs site renders the committed files regardless of Python availability at site-build time.🤖 Generated with Claude Code