Softanza
DémarrerEnglish
Softanza
Disciplines transversales

Système de documentation

La documentation s'exécute au lieu de s'écrire ; la bibliothèque se documente elle-même et répond aux questions ; les plans consignent ce qui a été livré ; ni site, ni référence générée.

3 Strong · 6 Solid · 2 Partial · 1 Emerging

Mesuré contre : Sphinx · rustdoc · MkDocs · literate programming · Dossiers : base/doc(s'ouvre dans un nouvel onglet) · base/meta(s'ouvre dans un nouvel onglet) · base/reflect(s'ouvre dans un nouvel onglet) · Pour les programmeurs : la référence de ce domaine

un document dont les cellules de code ont tourné avant votre lecture
un document dont les cellules de code ont tourné avant votre lecture. dessiné le 2026-10-01 par le script du site tools/areas-figurative.ring, exécuté dans la bibliothèque au commit 0e72e2e2c · la source(s'ouvre dans un nouvel onglet)

Repensé depuis les premiers principes

Ce que Softanza a gardé de ce qui marche, et ce qu'elle a repensé, tel que la bibliothèque l'a écrit dans ses documents de conception et ses narrations.

La manière SoftanzaLa documentation s'exécute, elle ne se contente pas d'être écrite : chaque exemple montre une vraie sortie, et la bibliothèque s'explique à partir de son propre code.

Gardé des meilleures pratiques

  • Plusieurs portes pour plusieurs lecteurs : des recettes d'une ligne pour les pressés, des narrations pour les amateurs d'histoires, des références, des analyses de fond et une FAQ. source(s'ouvre dans un nouvel onglet)
  • De simples fichiers markdown, rangés avec le code et hébergés sur GitHub, pour une documentation légère et accessible. source(s'ouvre dans un nouvel onglet)
  • Chaque méthode est décrite là où elle vit, par un commentaire dans le code source, et des en-têtes de section regroupent les méthodes par capacité. source(s'ouvre dans un nouvel onglet)

Repensé

  • Les narrations expliquent une idée comme une histoire, avec du vrai code. Chaque bloc de sortie est la sortie réelle d'une exécution, et un test la maintient exacte. source(s'ouvre dans un nouvel onglet)
  • Un chapitre ne stocke aucune sortie. Chaque cellule promet ce qu'elle affiche, toutes s'exécutent dans un processus neuf, et une promesse fausse est détectée, pas cachée. source(s'ouvre dans un nouvel onglet)
  • On interroge la bibliothèque en langage courant, et elle répond à partir des commentaires de son propre code, sans grand modèle de langage : le savoir y est déjà. source(s'ouvre dans un nouvel onglet)
  • Les noms de méthodes suivent une grammaire : HowTo compose un nom depuis l'intention, le vérifie parmi les méthodes réelles, sinon cherche par le sens. source(s'ouvre dans un nouvel onglet)

Documentation is not a module in Softanza; it is a discipline built into how the library is made, and its signature is that the docs are run, not written, and the library can document itself. 134 literate narrations teach through stories whose every code-and-output block is produced by a real executed demo; the library answers Ask() / HowTo() / ExplainMethod() about its own API deterministically; 2,956 files carry inline #--> promises a harness checks; ~63 plans-of-record record what actually shipped. Where it is thin: no published doc site, no generated API reference, no measured coverage, and its own overview has drifted behind the system it describes.

Ce qu'un artisan en fait, et ce qui se distingue

  • The docs are run, not written: 134 narrations whose every block is produced by an executed demo
  • The library documents itself: Ask() / HowTo() / ExplainMethod() are deterministic and zero-hallucination
  • Design docs that record what actually shipped, not just what was intended
  • Self-illustrating figures drawn by the thing being documented

Ce qui est dû

  • A published doc site (MkDocs / Docusaurus over the existing markdown)
  • Generate the API reference from the stzReflectFuncs harvester
  • Refresh the system overview (5 pillars vs 9 surfaces) and widen the self-doc corpus beyond 2 classes
  • Measured doc coverage, and docs wired into CI

La manière Softanza, exécutée

Ce que Softanza fait autrement dans ce domaine, montré par du code tiré de ses narrations et de ses gardes, et exécuté pour cette page.

À la question « comment retirer les doublons », la bibliothèque compose le nom de la méthode grâce à sa propre grammaire de nommage, et le dit.

Softanza
oDoc = StzSelfDocQ("stzList")
? oDoc.HowTo("remove duplicates")
? oDoc.HasMethod("DuplicatesRemoved")
Sortie
Q([...]).RemoveDuplicates()   -- composed by grammar (remove duplicates)
1

exécuté le 2026-10-01 21:18 dans la bibliothèque au commit 0e72e2e2c ; tiré de base/education/program/courses/elementary-introduction/chapters/13-the-gap-question.en.md(s'ouvre dans un nouvel onglet)

La bibliothèque explique une méthode à partir du commentaire de son code, et refuse franchement une méthode qui n'existe pas au lieu d'en inventer une.

Softanza
oDoc = StzSelfDocQ("stzList")
? StzLeft( oDoc.ExplainMethod("DuplicatesRemoved"), 20 )
? oDoc.ExplainMethod("NoSuchThing")
Sortie
DuplicatesRemoved --
No method 'NoSuchThing' in stzList.

exécuté le 2026-10-01 21:18 dans la bibliothèque au commit 0e72e2e2c ; tiré de base/education/program/courses/elementary-introduction/chapters/13-the-gap-question.en.md(s'ouvre dans un nouvel onglet)

Les couloirs, un par un

Les couloirs et leurs notes sont cités tels qu'ils ont été lus à la source, le Read from the source on 2026-09-17, from a read-only main worktree -- base/doc/narrations (134), base/meta/stzSelfDoc + stzLibDoc, base/reflect/stzReflectFuncs, base/meta/promises.py over 2,956 #--> files, base/doc/design (44) + SOFTANZA_*_PLAN.md, and stz-doc-system-overview.md.

Run-verified literate narrations
Strong
134 narrations where every code and output block is executed, paired with 17 *_narration_demo and 455 *_narrated guards; outputs are hand-pastedbase/doc/narrations; *_narration_demo; *_narrated
Self-documenting, queryable library
Strong
stzSelfDoc/stzLibDoc answer Ask(), HowTo(), ExplainMethod() from source via a lexical-IDF retriever; deterministic, zero-hallucination; default corpus 2 classesbase/meta/stzSelfDoc + stzLibDoc
Plans-of-record with results
Strong
~63 design docs written before the code and amended as phases close, with STATUS/RESULTS banners recording files, guard count and narration per phasebase/doc/design (44) + SOFTANZA_*_PLAN.md, e.g. SOFTANZA_PERF_SYSTEM.md
Docs-as-tests (the promise harness)
Solid
2,956 files carry inline #--> promises; promises.py runs each file and walks them as an ordered subsequence; standalone, not in CI, tolerates stale promisesbase/meta/promises.py
Doc-comments harvested from source
Solid
The harvester reads doc-comments above each def, lifts undocumented methods from #==# headers, inherits variants, synthesizes signatures; nothing emits a manualbase/reflect/stzReflectFuncs
Audience-layered taxonomy
Solid
quickers (22 + recipes), narrations (134), deepdives (8), references, faqs, internals (5) map onto Diataxis; references/ holds 3 files, faqs/ 1, misc/ 9 outside
Quick-starts & recipes
Solid
22 quickers plus a recipes/ tree (list/number/string/text) with copy-ready one-liners, also ingested by the self-doc index; breadth limited to core types
Conceptual & deep-dive essays
Solid
8 deepdives plus design studies (SCOPE_ORIENTED_PROGRAMMING.md, SOFTANZA_ENGINE_ARCHITECTURE.md, *_VS_THE_FIELD.md); essay-driven, not systematically indexed
Self-illustrating figures
Solid
The library draws its own figures via stzCanvas/stzGraphCanvas/stzPlotCanvas/stzTreeCanvas; but they are committed PNGs nothing regenerates on a doc buildnarrations/images
Browsable API reference
Partial
The reference is the live queryable self-doc plus a hand-written references/ of 3 files; no static, browsable, cross-linked API manual or generator
Doc health & coverage
Partial
No measured doc coverage and prose freshness is unenforced: stz-doc-system-overview.md still describes 5 pillars while the tree has 9 surfacesstz-doc-system-overview.md
Published site & discoverability
Emerging
Hand-written markdown read on GitHub; no mkdocs.yml, conf.py, docusaurus.config.js or .rst anywhere; no site, no search, no versioned rendering