Skip to content

Delegate the module skill's platform contracts to the developer manual - #13

Merged
gsanchietti merged 4 commits into
mainfrom
ns8-module-manual-delegation
Sep 7, 2026
Merged

Delegate the module skill's platform contracts to the developer manual#13
gsanchietti merged 4 commits into
mainfrom
ns8-module-manual-delegation

Conversation

@stephdl

@stephdl stephdl commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Summary

The skill paraphrased contracts that the docs/modules/ tree of NethServer/ns8-core already specifies, and said nothing about the agent package every action imports.

references/platform-contracts.md delegates to the 17 manual pages, one line each, with the URL pattern given once.

references/backend.md gains the provenance of the package — it ships in the core image and reaches import agent through a pypkg.pth, so nothing resolves it in a module repo — plus an index of its 45 public functions grouped by domain. The index costs about 200 tokens and answers offline; fetching the source costs 8500 and a network call. The URL stays for a signature or a missing name, outside a bash block so it does not read as a step.

The router grows by one map row of 22 words, naming only the subjects no other row routes.

Dropped on purpose: the deploy loop, since add-module is already in nethserver-admin and buildah is what the new_module page is for, and the description rewrite, since #10 has since done it better.

Related issue

None. Supersedes #9, which no longer merges since #10 split the skill into a router plus references.

How to test

Open a page from the table, for instance https://nethserver.github.io/ns8-core/modules/port_allocation/, and confirm the pattern resolves. Compare the index against curl -s https://raw.githubusercontent.com/NethServer/ns8-core/ns8-stable/core/imageroot/usr/local/agent/pypkg/agent/__init__.py | grep '^def ' — 47 definitions, the two underscore-prefixed ones excluded.

Dependencies

None.

The manual specifies certificates, port allocation, network, metadata,
rootless mode and certification. Point at the page instead of restating
it, and record that the agent package ships with the core image so a
helper that already exists is not written twice.

Keep the router untouched apart from one map row: the table and the page
name pattern live in the reference file, loaded only when needed.
The grep assumed shell access to a node. A module repo has no copy of the
package, so point at the ns8-stable tag of ns8-core, which tracks the
released core a node runs, and keep the node path as the fallback.
The comment repeated what the paragraph above already states about
installing nothing locally. Keep only the ref choice.
Listing the 45 public functions by domain costs 200 tokens and answers
the common question offline, where fetching the source costs 8500 and a
network round trip. The URL stays for a signature or a missing name, out
of a bash block so it does not read as a step.
@stephdl
stephdl requested a review from gsanchietti September 7, 2026 12:26
@gsanchietti
gsanchietti merged commit d80fb6c into main Sep 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants