|
2 | 2 |
|
3 | 3 | ## Status |
4 | 4 |
|
5 | | -Status: open |
| 5 | +Status: completed |
6 | 6 |
|
7 | | -Sub-state: requirements captured; implementation not started. |
| 7 | +Sub-state: completed after local validation and whole-SOW reviewer rerun. |
8 | 8 |
|
9 | 9 | ## Requirements |
10 | 10 |
|
@@ -182,9 +182,21 @@ Artifact impact plan: |
182 | 182 |
|
183 | 183 | Open-source reference evidence: |
184 | 184 |
|
185 | | -- No external repository was checked yet. Implementation should inspect current |
186 | | - GitHub Actions documentation and, if useful, comparable wiki publish workflows |
187 | | - from open-source repositories. |
| 185 | +- GitHub documentation was checked for wiki and Actions behavior: |
| 186 | + - GitHub Docs, `communities/documenting-your-project-with-wikis/about-wikis`: |
| 187 | + wikis host long-form project documentation, can be edited locally, and are |
| 188 | + public or private according to repository access. |
| 189 | + - GitHub Docs, |
| 190 | + `communities/documenting-your-project-with-wikis/adding-or-editing-wiki-pages`: |
| 191 | + wikis are Git repositories and can be cloned with |
| 192 | + `https://github.com/YOUR-USERNAME/YOUR-REPOSITORY.wiki.git` after the first |
| 193 | + wiki page exists. |
| 194 | + - GitHub Docs, `actions/concepts/security/github_token`: `GITHUB_TOKEN` |
| 195 | + permissions are limited to the repository that contains the workflow. |
| 196 | +- Related repository pattern checked read-only: |
| 197 | + - `netdata/ai-agent`, `.github/workflows/wiki-sync.yml`: checks out |
| 198 | + `${{ github.repository }}.wiki` with `actions/checkout` and |
| 199 | + `token: ${{ secrets.GITHUB_TOKEN }}`, with job-level `contents: write`. |
188 | 200 |
|
189 | 201 | Open decisions: |
190 | 202 |
|
@@ -245,78 +257,168 @@ Failure handling: |
245 | 257 |
|
246 | 258 | - Created the SOW from the user's documentation and GitHub wiki publication |
247 | 259 | request. |
| 260 | +- Activated the SOW for local implementation. |
| 261 | +- Added the committed `docs/` GitHub wiki source, wiki publication workflow, |
| 262 | + and local wiki docs validator. |
| 263 | +- Replaced the initial dedicated-token wiki publish design with the |
| 264 | + `GITHUB_TOKEN`-based wiki checkout pattern already used in `netdata/ai-agent`. |
| 265 | +- Added an explicit options reference page so performance-sensitive options are |
| 266 | + visible in one place. |
| 267 | +- First reviewer pass found documentation ambiguity and workflow hardening |
| 268 | + issues. Fixed policy-name mapping, Rust low-level type locations, PR-time |
| 269 | + docs validation, pinned checkout actions, missing-`docs/` publish guard, |
| 270 | + Node/Python performance warnings, `documentation/` vs `docs/` scope, reader |
| 271 | + facade hot-path wording, Explorer anchor wording, and validator edge cases. |
248 | 272 |
|
249 | 273 | ## Validation |
250 | 274 |
|
251 | 275 | Acceptance criteria evidence: |
252 | 276 |
|
253 | | -- Pending. |
| 277 | +- `docs/` contains GitHub wiki source pages: |
| 278 | + - `Home.md` |
| 279 | + - `_Sidebar.md` |
| 280 | + - `Getting-Started.md` |
| 281 | + - `Rust-Crates-And-Packages.md` |
| 282 | + - `Reader-APIs.md` |
| 283 | + - `Writer-APIs.md` |
| 284 | + - `Explorer-And-Netdata-Queries.md` |
| 285 | + - `Hot-Path-Guide.md` |
| 286 | + - `Production-Profiles.md` |
| 287 | + - `Options-Reference.md` |
| 288 | + - `Wiki-Publishing.md` |
| 289 | +- `.github/workflows/wiki.yml` publishes `docs/` to |
| 290 | + `${{ github.repository }}.wiki` on trusted `master` pushes using the |
| 291 | + `GITHUB_TOKEN` pattern already used by `netdata/ai-agent`. |
| 292 | +- `README.md` points consumers to `docs/Home.md`. |
| 293 | +- `.agents/sow/specs/product-scope.md` records `docs/` as the committed |
| 294 | + consumer documentation and wiki source. |
254 | 295 |
|
255 | 296 | Tests or equivalent validation: |
256 | 297 |
|
257 | | -- Pending. |
| 298 | +- `python3 tests/docs/check_wiki_docs.py`: passed; validates 11 wiki Markdown |
| 299 | + files. |
| 300 | +- Workflow YAML parse for all `.github/workflows/*.yml`: passed. |
| 301 | +- Sensitive/local-path scan over changed durable artifacts: passed; no raw |
| 302 | + token assignments, local user path, or personal-name artifacts found. |
| 303 | +- `git diff --check`: passed. |
258 | 304 |
|
259 | 305 | Real-use evidence: |
260 | 306 |
|
261 | | -- Pending. |
| 307 | +- Full GitHub wiki publication cannot be executed locally. The workflow matches |
| 308 | + the known working pattern from `netdata/ai-agent` and will be validated by |
| 309 | + the first trusted `master` workflow run after merge/push. |
262 | 310 |
|
263 | 311 | Reviewer findings: |
264 | 312 |
|
265 | | -- Pending. |
| 313 | +- First pass, `llm-netdata-cloud/glm-5.1`: PRODUCTION GRADE with minor |
| 314 | + documentation concerns. Disposition: fixed Rust low-level type location |
| 315 | + wording and pinned checkout actions. |
| 316 | +- First pass, `llm-netdata-cloud/kimi-k2.6`: unavailable because the provider |
| 317 | + returned a usage-limit error. Disposition: recorded as unavailable; no result |
| 318 | + was fabricated. |
| 319 | +- First pass, `llm-netdata-cloud/mimo-v2.5-pro`: NOT PRODUCTION GRADE. |
| 320 | + Findings: language-neutral field policy names looked like exact API names; |
| 321 | + PR-time docs validation was missing; Node/Python performance warning was too |
| 322 | + vague. Disposition: fixed with spec/Rust/Go policy-name mapping, split |
| 323 | + validate/publish workflow jobs, and measured performance warning text. |
| 324 | +- First pass, `llm-netdata-cloud/minimax-m3-coder`: PRODUCTION GRADE with |
| 325 | + minor recommendations. Disposition: pinned checkout actions and verified the |
| 326 | + required wiki pages list already includes `_Sidebar.md`. |
| 327 | +- First pass, `llm-netdata-cloud/deepseek-v4-pro`: NOT PRODUCTION GRADE. |
| 328 | + Findings: `SealOptions` / writer-lock Rust locations were ambiguous, checkout |
| 329 | + actions were not pinned, and `documentation/` vs `docs/` scope was not clear. |
| 330 | + Disposition: fixed docs and workflow. |
| 331 | +- First pass, `llm-netdata-cloud/qwen3.6-plus`: NOT PRODUCTION GRADE. |
| 332 | + Findings: field policy names were ambiguous, wiki publish should fail before |
| 333 | + wiping if `docs/` is missing, validator should handle forbidden-text and |
| 334 | + query-string link edge cases, reader facade hot-path wording needed more |
| 335 | + nuance, and Explorer anchor behavior was not documented. Disposition: fixed. |
| 336 | +- Second pass, `llm-netdata-cloud/glm-5.1`: PRODUCTION GRADE. |
| 337 | + Disposition: no blocking findings; minor observations were non-blocking. |
| 338 | +- Second pass, `llm-netdata-cloud/kimi-k2.6`: unavailable because the provider |
| 339 | + returned the same usage-limit error. Disposition: recorded as unavailable; no |
| 340 | + result was fabricated. |
| 341 | +- Second pass, `llm-netdata-cloud/mimo-v2.5-pro`: PRODUCTION GRADE. |
| 342 | + Disposition: low/info observations only; no blocking fix required. |
| 343 | +- Second pass, `llm-netdata-cloud/qwen3.6-plus`: PRODUCTION GRADE. |
| 344 | + Disposition: low observations only; no blocking fix required. |
| 345 | +- Second pass, `llm-netdata-cloud/minimax-m3-coder`: PRODUCTION GRADE. |
| 346 | + Disposition: minor observations only; no blocking fix required. |
| 347 | +- Second pass, `llm-netdata-cloud/deepseek-v4-pro`: PRODUCTION GRADE. |
| 348 | + Disposition: no blocking findings; minor observations were non-blocking. |
266 | 349 |
|
267 | 350 | Same-failure scan: |
268 | 351 |
|
269 | | -- Pending. |
| 352 | +- Checked existing repo docs/workflows and the related `netdata/ai-agent` |
| 353 | + wiki sync workflow. The relevant existing pattern uses `GITHUB_TOKEN`, not a |
| 354 | + custom wiki token. |
270 | 355 |
|
271 | 356 | Sensitive data gate: |
272 | 357 |
|
273 | | -- Pending. |
| 358 | +- Passed. No raw secrets or local personal paths were written. The workflow |
| 359 | + uses `secrets.GITHUB_TOKEN` only through `actions/checkout`. |
274 | 360 |
|
275 | 361 | Artifact maintenance gate: |
276 | 362 |
|
277 | | -- AGENTS.md: Pending. |
278 | | -- Runtime project skills: Pending. |
279 | | -- Specs: Pending. |
280 | | -- End-user/operator docs: Pending. |
281 | | -- End-user/operator skills: Pending. |
282 | | -- SOW lifecycle: Pending. |
283 | | -- SOW-status.md: Pending. |
| 363 | +- AGENTS.md: no update needed; repository-wide workflow rules did not change. |
| 364 | +- Runtime project skills: no update needed; release/orchestration process did |
| 365 | + not change. |
| 366 | +- Specs: updated `.agents/sow/specs/product-scope.md`. |
| 367 | +- End-user/operator docs: added `docs/` wiki pages and README pointer. |
| 368 | +- End-user/operator skills: no output/reference skills exist for this SDK. |
| 369 | +- SOW lifecycle: SOW moved from `pending/` to `current/` for implementation |
| 370 | + and then to `done/` for completion. |
| 371 | +- SOW-status.md: updated root and canonical ledgers for completed state. |
284 | 372 |
|
285 | 373 | Specs update: |
286 | 374 |
|
287 | | -- Pending. |
| 375 | +- Updated `.agents/sow/specs/product-scope.md` with consumer documentation and |
| 376 | + wiki source contract. |
288 | 377 |
|
289 | 378 | Project skills update: |
290 | 379 |
|
291 | | -- Pending. |
| 380 | +- No project skill update required. This SOW adds consumer docs and a CI wiki |
| 381 | + sync workflow; it does not change how future assistants perform repository |
| 382 | + work beyond normal SOW artifact maintenance. |
292 | 383 |
|
293 | 384 | End-user/operator docs update: |
294 | 385 |
|
295 | | -- Pending. |
| 386 | +- Added 11 wiki source pages under `docs/` and linked them from `README.md`. |
296 | 387 |
|
297 | 388 | End-user/operator skills update: |
298 | 389 |
|
299 | | -- Pending. |
| 390 | +- No output/reference skills exist for this SDK, so none were affected. |
300 | 391 |
|
301 | 392 | Lessons: |
302 | 393 |
|
303 | | -- Pending. |
| 394 | +- Wiki publication workflows are easier to reason about when validation and |
| 395 | + publishing are separate jobs. Pull requests should validate docs, while only |
| 396 | + trusted branch events publish. |
| 397 | +- Consumer docs should separate language-neutral spec names from exact |
| 398 | + per-language API identifiers. |
304 | 399 |
|
305 | 400 | Follow-up mapping: |
306 | 401 |
|
307 | | -- Pending. |
| 402 | +- No follow-up is required from this SOW. Reviewers raised only non-blocking |
| 403 | + observations after the second pass. |
308 | 404 |
|
309 | 405 | ## Outcome |
310 | 406 |
|
311 | | -Pending. |
| 407 | +Completed. The repository now has a committed `docs/` GitHub wiki source, |
| 408 | +local docs validation, and a secure wiki publication workflow that validates |
| 409 | +pull requests and publishes from trusted non-PR events with `GITHUB_TOKEN`. |
312 | 410 |
|
313 | 411 | ## Lessons Extracted |
314 | 412 |
|
315 | | -Pending. |
| 413 | +- Split validation and publication jobs for documentation publishing workflows. |
| 414 | + This lets pull requests prove docs health without exposing write-capable |
| 415 | + publication steps. |
| 416 | +- Use language-neutral spec names only when the docs also show exact |
| 417 | + per-language API identifiers. |
316 | 418 |
|
317 | 419 | ## Followup |
318 | 420 |
|
319 | | -None yet. |
| 421 | +None. |
320 | 422 |
|
321 | 423 | ## Regression Log |
322 | 424 |
|
|
0 commit comments