Skip to content

fix(docs): add ┴ junctions to two outer-box bottom borders to satisfy ascii-guard - #15260

Closed
perlowja wants to merge 1 commit into
NousResearch:mainfrom
perlowja:fix/ascii-guard-warnings-on-main
Closed

fix(docs): add ┴ junctions to two outer-box bottom borders to satisfy ascii-guard#15260
perlowja wants to merge 1 commit into
NousResearch:mainfrom
perlowja:fix/ascii-guard-warnings-on-main

Conversation

@perlowja

Copy link
Copy Markdown
Contributor

What does this PR do?

Fixes 6 pre-existing ascii-guard 2.3.0 warnings that currently block the `docs-site-checks` CI on every PR touching `website/**`.

  • `website/docs/developer-guide/architecture.md` — 3 warnings on the bottom border of the outer AIAgent box (line 38)
  • `website/docs/developer-guide/gateway-internals.md` — 3 warnings on the bottom border of the outer GatewayRunner box (line 49)

Both diagrams have a two-row nested-box pattern where the first inner-box row's bottom uses `┬` to connect downward to a second inner-box row. ascii-guard's `validate_box()` routine looks for `┬`/`┼` characters anywhere in the outer box's content lines (not just in its top border) via `get_column_positions()` and concludes those are table-column boundaries belonging to the outer box. It then expects a matching `┴` in the outer box's bottom border — and warns when it finds `─` instead. That interpretation is wrong for this geometry (the `┬` is a purely internal inner-box-to-inner-box connection), but the linter rule is what it is, and the fix is trivial: add `┴` at the three flagged columns of each outer bottom border.

After the fix, the `┴` reads visually as "the column space continues past this box," which matches the arrows already sitting below each outer box. No readability regression.

Related Issue

No existing issue — noticed while filing #15214 (docs cookbook). Verified the warnings are pre-existing on `main` (`architecture.md` last touched in #11373, `gateway-internals.md` much older).

Fixes #

Type of Change

  • 🐛 Bug fix (non-breaking change that fixes an issue) — unblocks `docs-site-checks` CI
  • ✨ New feature
  • 🔒 Security fix
  • 📝 Documentation update
  • ✅ Tests
  • ♻️ Refactor
  • 🎯 New skill

Changes Made

  • `website/docs/developer-guide/architecture.md` line 38: positions 11, 29, 47 (1-indexed) on the outer bottom border changed from `─` to `┴`. Those positions line up with the `┬` junctions on line 30 that connect the "Prompt Builder / Provider Resolution / Tool Dispatch" row to the "Compression / 3 API Modes / Tool Registry" row below.
  • `website/docs/developer-guide/gateway-internals.md` line 49: positions 9, 23, 37 (1-indexed) on the outer bottom border changed from `─` to `┴`. Those positions line up with the `┬` junctions on line 35 that connect the "Telegram / Discord / Slack Adapter" row to the `_handle_message()` merge below.

Diff: 2 files changed, 2 insertions(+), 2 deletions(-) — every changed character is a single Unicode swap.

How to Test

Validated locally against ascii-guard 2.3.0 (same version the CI workflow installs via `python -m pip install ascii-guard==2.3.0`).

Before (on clean `upstream/main`):
```
$ ascii-guard lint website/docs/developer-guide/architecture.md
Checking .../architecture.md...
Found 10 ASCII box(es)
⚠ Line 39, Col 12: Bottom border missing junction point at column 11 (expected ┴, got '─')
⚠ Line 39, Col 30: Bottom border missing junction point at column 29 (expected ┴, got '─')
⚠ Line 39, Col 48: Bottom border missing junction point at column 47 (expected ┴, got '─')

$ ascii-guard lint website/docs/developer-guide/gateway-internals.md
Checking .../gateway-internals.md...
Found 4 ASCII box(es)
⚠ Line 50, Col 10: Bottom border missing junction point at column 9 (expected ┴, got '─')
⚠ Line 50, Col 24: Bottom border missing junction point at column 23 (expected ┴, got '─')
⚠ Line 50, Col 38: Bottom border missing junction point at column 37 (expected ┴, got '─')
```

After (on this branch):
```
$ ascii-guard lint website/docs/developer-guide/architecture.md
Checking .../architecture.md...
Found 10 ASCII box(es)
✓ No issues found
✓ Errors: 0

$ ascii-guard lint website/docs/developer-guide/gateway-internals.md
Checking .../gateway-internals.md...
Found 4 ASCII box(es)
✓ No issues found
✓ Errors: 0
```

No other files changed. Other pre-existing ascii-guard findings on committed-but-regenerated-in-CI skill-docs (`skills/bundled/research/research-research-paper-writing.md`, `skills/bundled/mlops/mlops-models-segment-anything.md`) are out of scope for this PR — CI runs `generate-skill-docs.py` before the lint step, which overwrites those files with clean output, so they don't actually fail CI.

Checklist

Code

  • I've read the Contributing Guide
  • My commit messages follow Conventional Commits (`fix(docs): …`)
  • I searched for existing PRs — nothing duplicative
  • My PR contains only changes related to this fix (2 `─` → `┴` swaps on 2 lines)
  • I've run `pytest tests/ -q` — N/A for a docs-only change to 2 markdown files; the Python test suite does not exercise these files
  • I've added tests — N/A, existing CI `docs-site-checks` workflow is the regression guard
  • I've tested on my platform: macOS 15 / darwin-arm64, ascii-guard 2.3.0

Documentation & Housekeeping

  • Documentation (README, `docs/`, docstrings) — this PR IS a docs fix
  • `cli-config.yaml.example` — N/A
  • `CONTRIBUTING.md` or `AGENTS.md` — N/A
  • Cross-platform impact considered — ASCII art renders identically on all platforms
  • Tool descriptions/schemas — N/A

For New Skills

N/A.

Screenshots / Logs

The 3 `┴` characters on `architecture.md` line 38 now align with the `┬` connectors on line 30 (same columns: 11, 29, 47). Same pattern for `gateway-internals.md`.

Unblocks #15214 (and every other open PR touching `website/**`) from the same CI failure.

… ascii-guard

ascii-guard 2.3.0's validate_box() treats inner-box ┬ characters
(appearing in content lines of an outer box) as table-column junctions
belonging to the outer box. When it finds ┬/┼ at column N in the outer
box's content, it expects a matching ┴ at column N of the outer box's
bottom border. The diagrams in architecture.md and gateway-internals.md
have inner-box rows whose bottoms use ┬ to connect downward to a second
inner-box row — a legitimate ASCII art pattern that ascii-guard
misinterprets as a dangling column boundary.

Two options: rewrite the diagrams to avoid the ┬ junctions (large,
invasive), or add ┴ characters at the flagged positions of the outer
bottom border (minimal, surgical). This PR takes the second option.
The resulting diagrams still read correctly — the ┴ on the outer box
bottom can be read as "the column space continues out of this box",
which is consistent with the arrow labels below it.

## Files

- website/docs/developer-guide/architecture.md (line 38, cols 11/29/47)
- website/docs/developer-guide/gateway-internals.md (line 49, cols 9/23/37)

## Validation

ascii-guard 2.3.0 lint on each file before and after:

Before:
  architecture.md: 10 boxes, 3 warnings (Line 39 Col 12/30/48)
  gateway-internals.md: 4 boxes, 3 warnings (Line 50 Col 10/24/38)

After:
  architecture.md: 10 boxes, 0 warnings, 0 errors
  gateway-internals.md: 4 boxes, 0 warnings, 0 errors

No other docs files changed; other unrelated lint findings on stale
committed skill-docs (which the CI regenerates via
generate-skill-docs.py before the ascii-guard step) are unaffected
and out of scope.
@perlowja

Copy link
Copy Markdown
Contributor Author

CI status update

docs-site-checks on this PR now reports 0 warnings, 4 errors (previous state on main: 6 warnings, 0 errors). My fix cleared the 6 warnings as intended — the 4 errors that surfaced are independent pre-existing issues in auto-generated skill docs.

What my fix did (the intended win)

The 6 ascii-guard warnings on architecture.md line 39 and gateway-internals.md line 50 — the exact set I addressed — no longer appear in the run:

Before (main @ 62c14d55): Warnings: 6, Errors: 0
After  (this branch):    Warnings: 0, Errors: 4

The 4 new errors are unrelated

They're in two CI-regenerated skill docs:

✗ research-paper-writing.md L46,L54  — Right border missing: line too short
✗ mlops/segment-anything.md  L157    — Line has extra chars after right border

Both files are auto-generated by website/scripts/generate-skill-docs.py before the ascii-guard step runs. The source SKILL.md files for those skills contain no ASCII boxes at the cited lines — the generator is synthesizing mis-dimensioned boxes from skill metadata.

I've filed this as #15305 ("generate-skill-docs.py produces ASCII-guard-failing output for 2 bundled skills") so it can be tracked and fixed independently.

What this means for merging #15260

This PR still does what it says on the tin — removes 6 genuine ascii-guard warnings on hand-authored architecture diagrams. But the docs-site-checks gate won't go green until #15305 is fixed too, since it now fires on 4 pre-existing errors that the warnings were coincidentally masking.

Two paths forward:

  1. Merge fix(docs): add ┴ junctions to two outer-box bottom borders to satisfy ascii-guard #15260 as-is once review approves the diff, and block on [Bug]: generate-skill-docs.py produces ASCII-guard-failing output for 2 bundled skills (blocks all website PRs) #15305 for the gate to actually go green. This PR's diff is correct and reviewable in isolation.
  2. Extend fix(docs): add ┴ junctions to two outer-box bottom borders to satisfy ascii-guard #15260 to also fix the generator — larger scope, but clears the gate on this branch directly. Happy to do this if you'd rather unblock the whole chain in one PR.

My preference is (1) — the fix on architecture.md / gateway-internals.md is a clean, surgical diff that shouldn't get coupled to generator-script work. But deferring to maintainer preference on how to sequence this.

Also: nix (ubuntu-latest) is still failing for the same reason as on main and #15214 — tracked in #15272. Not introduced here.

@perlowja

Copy link
Copy Markdown
Contributor Author

Closing this — verified locally with ascii-guard 2.3.0 (the version pinned in docs-site-checks.yml) that current origin/main passes the lint with 0 errors without the -junction borders this PR introduces. The CI failures on this PR's head (fbd085a9) trace to two unrelated bundled-skill files (research-research-paper-writing.md lines 46/54, mlops-models-segment-anything.md line 157) that pass on main; my best guess is they were emitted into the PR's tree via a stale generate-skill-docs.py artifact at PR-creation time, and a later main-side regeneration cleared them. The decoration in architecture.md / gateway-internals.md is no longer required to satisfy ascii-guard.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P3 Low — cosmetic, nice to have type/docs Documentation improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants