From 1a54e95d89f109b49f8b0233d3fe8fc07bccb064 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Crist=C3=B3v=C3=A3o=20GUIHO?= Date: Sat, 12 Sep 2026 12:43:16 +0000 Subject: [PATCH 1/5] Document breaking changes for xdocs 0.12.0 --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ee8da6..17732c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,16 @@ keywords: # GUIHO XDocs Changelog +## 0.12.0 - 2026-09-12 + +- **Breaking:** Require explicit `documentation.directories` grants for descriptor maintenance and separate `documentation.frontmatter` grants for ordinary Markdown metadata. Both default to empty; `ai.mode: auto` does not grant permission, and legacy frontmatter denials still win. +- Keep directory context in one named descriptor such as `technologies/technologies.xdocs.md`. Diagnose duplicate, bare, and legacy descriptor names without creating extra overview documents or repairing user files. +- Display every discovered descriptor through the full filesystem tree, including deep, orphaned, duplicate, and invalid entries, with paths, context, and diagnostics. Include the root `XDOCS.md` index; validate semantic relationships separately in doctor. +- **Breaking:** Guard explicit report destinations with validation and atomic replacement. Reject descriptor-shaped destinations, symlinks, excluded paths, malformed frontmatter, and unauthorized companion metadata before changing existing bytes. Report commands otherwise write to stdout. +- Add read-only `meta --existing-frontmatter` and `doctor --existing-frontmatter` audits, including ordinary documents in directories without descriptors; absent headers remain valid without explicit metadata grants. +- Reject invalid YAML scalar types, authorization aliases and merges, ambiguous headers, and whitespace-only required companion fields consistently across metadata, doctor, and report writes. +- Align embedded skills, prompts, managed instructions, and documentation with explicit authorization and complete discovery. + ## 0.11.0 - 2026-08-23 - Replace the plain `Hello Windows - xdocs v` greeting with a beautiful borderless hello window that matches the RunX and Genius siblings while using the five-tone earth palette (`#7F5539`, `#A68A64`, `#EDE0D4`, `#656D4A`, `#414833`). From e4537cf0f648ba4210d167422300d0d65b4d224d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Crist=C3=B3v=C3=A3o=20GUIHO?= Date: Sat, 12 Sep 2026 12:43:16 +0000 Subject: [PATCH 2/5] Add xdocs 0.12.0 migration guidance --- DOCS.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/DOCS.md b/DOCS.md index 9ac4c79..2e55d9d 100644 --- a/DOCS.md +++ b/DOCS.md @@ -31,6 +31,21 @@ The active implementation is a native Go CLI. The historical TypeScript tree is retained as migration reference only and is not used by the executable, installers, CI, versioning, or releases. +## Upgrading to 0.12.0 + +This minor release contains breaking authorization and report-output changes. +Existing configurations remain loadable, but omitted documentation grants now +mean no descriptor maintenance or companion metadata requirement. Explicitly +list permitted subtrees in `documentation.directories`; grant ordinary Markdown +headers separately with `documentation.frontmatter`. Existing legacy denials +still take precedence. Do not add grants merely to make validation pass. + +Keep context in one named descriptor per directory. `tree` now uses filesystem +containment and includes all discovered descriptors; use `doctor` for semantic +parent/child validation. Report output cannot target descriptor filenames and +must pass destination and content validation. Use `meta --existing-frontmatter` +or `doctor --existing-frontmatter` to audit historical headers without repairs. + ## Runtime architecture - Go module: `github.com/CGuiho/xdocs` From c9f76ab22d2fd3bb0bb2926ba586a8fc782e12a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Crist=C3=B3v=C3=A3o=20GUIHO?= Date: Sat, 12 Sep 2026 12:43:17 +0000 Subject: [PATCH 3/5] Align bundled skill with xdocs 0.12.0 release --- skills/guiho-s-xdocs/SKILL.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/skills/guiho-s-xdocs/SKILL.md b/skills/guiho-s-xdocs/SKILL.md index 9c7b52d..8e97330 100644 --- a/skills/guiho-s-xdocs/SKILL.md +++ b/skills/guiho-s-xdocs/SKILL.md @@ -12,9 +12,9 @@ keywords: - guiho-s-xdocs - xdocs metadata - documentation workflow -version: "0.11.0" +version: "0.12.0" metadata: - version: "0.11.0" + version: "0.12.0" --- #### © 2026 [GUIHO](https://guiho.co) as represented by [Cristóvão GUIHO](https://guiho.co/cguiho) All Rights Reserved. From 6443684b5138a33f82890cb1451996438b04e810 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Crist=C3=B3v=C3=A3o=20GUIHO?= Date: Sat, 12 Sep 2026 12:43:31 +0000 Subject: [PATCH 4/5] Update embedded release version assertion to 0.12.0 --- main_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main_test.go b/main_test.go index 31e7a3c..2abf022 100644 --- a/main_test.go +++ b/main_test.go @@ -26,7 +26,7 @@ func TestEmbeddedSkillMatchesCurrentReleaseVersion(t *testing.T) { if err := yaml.Unmarshal([]byte(strings.TrimPrefix(parts[0], "---\n")), &metadata); err != nil { t.Fatal(err) } - if metadata.Version != "0.11.0" || metadata.Metadata.Version != "0.11.0" { + if metadata.Version != "0.12.0" || metadata.Metadata.Version != "0.12.0" { t.Fatalf("embedded skill version mismatch: %#v", metadata) } } From f8bac33a45e9ccd0a8406287c394ffea0b8675d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Crist=C3=B3v=C3=A3o=20GUIHO?= Date: Sat, 12 Sep 2026 12:44:16 +0000 Subject: [PATCH 5/5] Align documented release build with 0.12.0 --- DOCS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DOCS.md b/DOCS.md index 2e55d9d..41457b5 100644 --- a/DOCS.md +++ b/DOCS.md @@ -384,9 +384,9 @@ go mod tidy go test ./... go vet ./... go run ./devops/build-binaries.go \ - --version 0.11.0 \ + --version 0.12.0 \ --commit "$(git rev-parse HEAD)" \ - --build-date "2026-08-23T00:00:00Z" + --build-date "2026-09-12T00:00:00Z" ``` Cross-compilation proves buildability, not foreign runtime behavior. Native CI