the example the page told you to write was refused by the version it documents
a hook is a group now, and the pages say so
keep the term in the heading; the purpose belongs in the first line
Template System: say what each mechanism is for before saying what it is
wiki: stop documenting template constructs that fail the build
wiki: say what each feature is for, before saying what it does Twenty-two sections opened by restating their own name - "NodeClass defines device types and their basic properties", "Define automatic parameter assignment" - or by going straight into a table. A reader who does not already know why the feature exists learns nothing from the syntax that follows. Each now opens with what it is useful for. The existing text is untouched; this is one paragraph added in front of it. The six class definitions carried the most weight, since the class system is where a topology's shape is decided and "NodeClass defines device types" says nothing about why there is one class per kind of object. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
wiki: say topology where a topology is meant, and stop saying scenario scenario is netroub's word - a configuration together with the events that happen in it, defined in its papers and in its own schema, where a scenario is a topology plus events. This documentation had taken it for what a reader writes, which would have left two projects by the same author using one word for two things. What you write - the DOT file and the YAML that configures it - is a topology, which is how this field already speaks: containerlab calls its own file a topology definition and puts the nodes' images and configuration in it. Basic-Concepts and Home say so before the word is used. Where only the graph is meant the pages now say the DOT file, and topology file is left to mean what a platform reads.
wiki: make the examples run, and say what virtual means now The two Complete Examples printed a loopback address from a scenario that never asked for one, and had no interface policy either - copied out and run, they stopped at 'no segment for layer ip'. Both build now; containerlab's generated topo.yaml is the real output of the example above it. The FRR page told readers to write 'conf t' in a template whose FormatStyle already writes it, which would have produced it twice. Its topology output had no network-mode: none, the platform-node paragraph said kind was unnecessary when only image is, and interface_class: is not a key any more than node_class: was. virtual now has a section: it means something different on a node, an interface and a connection, and since 0.8.0 a virtual interface no longer takes its link with it - which nobody was told. Also: TiNET's shell failure mode is not containerlab's (its output is piped to a shell on the host), FormatStyle-Design carried a backward compatibility section for fields that no longer exist, and four cross-page anchors pointed at headings that were renamed.
explain what the fields decide, not just that they exist A table row saying provide is 'mount or copy' tells a reader nothing about which to pick. The file definition fields now say what each one decides and links to the section that explains the choice, and the same was done for the param_rule sources and the class combination rules - where the config row was also wrong: two classes defining a config entry of the same name is an error whatever their strength, not a conflict resolved by tier. Module-FRR says where the log actually ends up: inside the container while the lab runs, under collected/<node>/ once it is destroyed, owned by whoever ran the script. That is the question a reader of the FRR page has, and answering it there is worth the repetition. Best-Practices had two sections about building incrementally and no table of contents; it now has one of each, in an order that follows how a scenario is written, plus what multi-host asks of a design. Also: the upgrade page belongs in Getting Started, not under Modules; node_class: is not a key and 0.8.0 rejects it; TiNET's complete example still had sysctls, switches: [] and ./ mounts; a digraph cannot hold --; and virtual on an interface no longer taking its link with it is a breaking change nobody was told about.
fix what the sweep left behind: names, examples, and the rules they depend on The pages written from scratch were checked against the code; the older ones were not, and the site contradicted itself. The default interface prefix said net in the reference and eth in the upgrade page. The frr FormatStyle was called frrVtysh, which never existed. TiNET's mounts had no $PWD and grew a sysctls section it does not generate; containerlab's examples had no network-mode: none, in a page that explains it is there. The tutorial's first YAML example used keys that do not exist, which 0.8.0 rejects outright, and Best-Practices told readers to run subcommands that were never implemented. Added what everything else leans on: how several classes on one object combine and which one wins, scope: group and what a group-scoped file is for, and the per-machine topology and spec files on the two platform pages. Kathara and assert are in the module tables now, so the new page can be reached.
update wiki for v0.7.0: add module docs, required_params, Value class