You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+43Lines changed: 43 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,3 +11,46 @@ This project follows established development practices for maintaining code qual
11
11
12
12
***Branching Model**: We use [GitFlow](https://nvie.com/posts/a-successful-git-branching-model/) as our branching strategy for managing feature development, releases, and hotfixes.
13
13
***Versioning**: We follow [Semantic Versioning (SemVer)](https://semver.org/) for all releases, ensuring predictable version numbering based on the nature of changes.
14
+
15
+
## Reflective Documentation (short overview)
16
+
17
+
SKaiNET includes a reflective documentation system that keeps docs in sync with the code. During the build, a KSP processor extracts operator metadata (signatures, parameters, backend availability, implementation status) into a JSON file. A small DocGen tool then converts this JSON into AsciiDoc fragments and pages.
18
+
19
+
- Source of truth (generated): skainet-lang/skainet-lang-core/build/generated/ksp/metadata/commonMain/resources/operators.json
- Asciidoctor site output: build/docs/asciidoc/ (if you run an Asciidoctor task locally)
22
+
23
+
### Quick start: generate reflective docs
24
+
25
+
Use any of the following Gradle tasks from the project root:
26
+
27
+
1) Full pipeline (recommended)
28
+
./gradlew generateDocs
29
+
- Runs KSP to produce operators.json (if needed)
30
+
- Generates AsciiDoc files under docs/modules/operators/_generated_
31
+
- Optionally, you can run an Asciidoctor task to build an HTML site locally (output under build/docs/asciidoc)
32
+
33
+
2) Operators documentation only
34
+
./gradlew generateOperatorDocs
35
+
- Depends on KSP; runs the built-in generateDocs task and then Asciidoctor
36
+
37
+
Open the generated AsciiDoc sources in docs/modules/operators/_generated_ with your preferred AsciiDoc viewer. If you build an HTML site locally with Asciidoctor, open build/docs/asciidoc.
38
+
39
+
### Documentation tooling
40
+
41
+
We now use the Gradle plugin (buildSrc) only. The former skainet-lang-export-ops module has been removed. All everyday workflows are covered by:
42
+
- generateDocs — converts KSP JSON to AsciiDoc
43
+
- validateOperatorSchema — validates generated operators.json against the JSON schema
44
+
45
+
Run from the project root, for example:
46
+
- ./gradlew generateDocs
47
+
- ./gradlew validateOperatorSchema
48
+
49
+
---
50
+
51
+
## Development Practices
52
+
53
+
This project follows established development practices for maintaining code quality and release management:
54
+
55
+
* Branching Model: We use GitFlow as our branching strategy for managing feature development, releases, and hotfixes.
56
+
* Versioning: We follow Semantic Versioning (SemVer) for all releases, ensuring predictable version numbering based on the nature of changes.
0 commit comments