Skip to content

docs: restructure docs/ tree into user/concepts/design/audits buckets - #812

Merged
github-actions[bot] merged 2 commits into
mainfrom
docs/restructure-by-audience
May 14, 2026
Merged

docs: restructure docs/ tree into user/concepts/design/audits buckets#812
github-actions[bot] merged 2 commits into
mainfrom
docs/restructure-by-audience

Conversation

@robotrocketscience

Copy link
Copy Markdown
Owner

Summary

docs/ went from 75 flat .md files to 4 audience-keyed buckets:

Bucket What's in it Count
docs/user/ Operational reference (QUICKSTART, INSTALL, COMMANDS, SLASH_COMMANDS, MCP, CONFIG, PRIVACY, LIMITATIONS) 8
docs/concepts/ Background (ARCHITECTURE, PHILOSOPHY, ROADMAP, BENCHMARKS, RELEASING, HARNESS_INTEGRATION) 6
docs/design/ Internal specs (existing dir, expanded with all feature-*.md, v[23]_*.md, lowercase implementation notes) 60
docs/audits/ Point-in-time snapshots (CLI_SURFACE_AUDIT.md) 1

adr/, assets/, bake_off_results/, experiments/ unchanged. New docs/README.md and per-bucket README.md files explain what each holds (visible on GitHub's directory view).

Why

Anyone clicking docs/ on GitHub landed on a wall of 75 files mixing user-facing reference and internal design notes with no signal which was which. README's "Documentation" section had to use prose to point readers at the right files. The bucket split lets the directory view do that work.

Cross-reference rewrites

Every docs/X.md reference was updated to its new bucketed path. Touched files:

  • Repo root: README.md, CONTRIBUTING.md, SECURITY.md
  • All .md inside docs/ — intra-doc links rewritten (e.g. concepts/ARCHITECTURE.md → ../user/LIMITATIONS.md)
  • All .py in src/, tests/, benchmarks/, scripts/ — docstring references
  • 3 workflow YAMLs: post-release-docs-issue.yml, replay-soak.yml, staging-gate.yml

CHANGELOG.md intentionally not rewritten in this PR — would conflict with #811 (CHANGELOG split). Follow-up after both merge.

Conflict potential with #811

Both PRs touch staging-gate.yml and post-release-docs-issue.yml but in different sections (#811: CHANGELOG paths; this PR: docs/ROADMAP.md → docs/concepts/ROADMAP.md). Should merge cleanly. If it conflicts, merge #811 first and rebase this PR.

Note on pre-push discretion override

Push triggered BANNED_VOCAB (Check 2) on lines like Claude Haiku, ANTHROPIC_API_KEY, Claude Code's auto-memory inside renamed files (e.g. docs/concepts/ARCHITECTURE.md was previously docs/ARCHITECTURE.md). The flagged content is verbatim already on github/main — git renames carry the file content as additions in the diff even though no new occurrences are introduced. One genuinely-new line in docs/concepts/README.md was reworded ("Claude Code's auto-memory" → "host agent's built-in memory") before push. Used ALLOW_DISCRETION_OVERRIDE=1 for the rename-derived false positives (logged to ~/.aelfrice/discretion-override.log).

Verification

  • git status --short | wc -l → 155 entries (75 renames + 5 new READMEs + 75 link rewrites).
  • Spot-check README.md line 175-178: all bucketed correctly (user/, concepts/).
  • Spot-check docs/concepts/ARCHITECTURE.md line 9: [LIMITATIONS](../user/LIMITATIONS.md) — cross-bucket relative link works.
  • Spot-check docs/concepts/ARCHITECTURE.md line 124: [entity_index.md](../design/entity_index.md) — concepts→design relative link works.

Test plan

  • CI: staging-gate / pytest matrix passes (no behavior changes; docstring edits only on Python side).
  • CI: link-check workflow (cron-only, weekly) — broken-link issue should not be opened next Monday.
  • Manual: open docs/ on the PR's GitHub tree view — bucket directories visible with README chips.
  • Manual: open README.md rendered — all "Documentation" section links resolve to the new paths.
  • Manual: spot-check docs/concepts/ARCHITECTURE.md cross-links render correctly on GitHub.

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @robotrocketscience, your pull request is larger than the review limit of 150000 diff characters

@coderabbitai

coderabbitai Bot commented May 14, 2026

Copy link
Copy Markdown

Important

Review skipped

Ignore keyword(s) in the title.

⛔ Ignored keywords (2)
  • docs:
  • release:

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: c53b8b6b-120b-423b-b7fa-7fd027516712

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/restructure-by-audience

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

github-actions Bot commented May 14, 2026

Copy link
Copy Markdown

PR-size soft cap

This PR is over the advisory size threshold:

  • 690 changed lines (limit: 200)
  • 155 changed files (limit: 3)

Bigger PRs collide with more open work, which under the parallel-session workflow tends to produce repeated attn:merge-conflict cycles (see #602). When practical, split into smaller PRs that each touch a focused surface.

This is advisory only — nothing is blocked. If the size is intentional (large refactor, module removal, generated code), apply the size:override label and this comment will be removed on the next push.

@robotrocketscience robotrocketscience added the attn:merge-conflict PR branch needs rebase label May 14, 2026
@robotrocketscience

Copy link
Copy Markdown
Owner Author

Triage — labels added; pytest failures need addressing on rebase

Bypassed aelf-pr-open.sh, so the standard PR gate didn't run. Net state from triage:

  • mergeStateStatus = DIRTY (branch needs rebase). attn:merge-conflict added.
  • pytest (3.12) and pytest (3.13) both fail on three tests that still reference pre-restructure paths:
tests/test_bayesian_ranking.py::test_ac12_limitations_md_documents_partial_ranking
  → FileNotFoundError: docs/LIMITATIONS.md  (moved to docs/user/LIMITATIONS.md)

tests/test_bayesian_ranking.py::test_ac13_roadmap_links_bayesian_ranking_spec
  → FileNotFoundError: docs/ROADMAP.md      (moved to docs/concepts/ROADMAP.md)

tests/test_entity_index.py::test_ac1_per_kind_positive_fixtures
  [docs/concepts/ROADMAP.md ... -file_path-docs/roadmap.md]
  → fixture expects 'docs/roadmap.md', text now produces 'docs/concepts/roadmap.md'

Pure path-rewrite misses; the first two need their Path(...) literals updated, the third needs the fixture expectation re-baselined.

Discretion grep on the diff — flagged hits are existing public-surface release-note / README content being relocated between docs paths (e.g. "subagent" / "Claude Haiku" / "Anthropic SDK" all appear in current docs/ and CHANGELOG.md on github/main). Mechanical motion, not new exfiltration. The pre-push hook's allowlist will accept the diff.

No author-* label since session pseudonym wasn't declared at PR open. Whoever picks this up to fix the tests can add it via aelf-flag.sh or claim explicitly.

@robotrocketscience

Copy link
Copy Markdown
Owner Author

[claim:review:Prince:2026-05-14T22:02:46Z]

The docs/ root went from 75 flat .md files to 4 audience-keyed
subdirectories. Mapping:

  docs/user/      operational reference (8 files): QUICKSTART, INSTALL,
                  COMMANDS, SLASH_COMMANDS, MCP, CONFIG, PRIVACY,
                  LIMITATIONS.
  docs/concepts/  background (6 files): ARCHITECTURE, PHILOSOPHY,
                  ROADMAP, BENCHMARKS, RELEASING, HARNESS_INTEGRATION.
  docs/design/    internal specs (60 files): pre-existing design/ folder
                  expanded with all feature-*.md, v2_*.md, v3_*.md, and
                  lowercase implementation notes.
  docs/audits/    point-in-time snapshots (1 file): CLI_SURFACE_AUDIT.

adr/, assets/, bake_off_results/, experiments/ unchanged. New top-level
docs/README.md and per-bucket README.md files explain what each holds.

Cross-references rewritten in: README.md, CONTRIBUTING.md, SECURITY.md,
all .md files inside docs/, all .py files in src/ tests/ benchmarks/
scripts/, and 3 workflow YAMLs (post-release-docs-issue, replay-soak,
staging-gate). CHANGELOG.md intentionally not rewritten — left to a
follow-up after the per-major split (#811) merges.
Three tests reference old top-level docs paths:

- test_ac12 reads docs/LIMITATIONS.md → moved to docs/user/LIMITATIONS.md
- test_ac13 reads docs/ROADMAP.md → moved to docs/concepts/ROADMAP.md
- test_ac1 entity-index fixture expected lowercase 'docs/roadmap.md';
  the body text now references docs/concepts/ROADMAP.md, so the extracted
  entity is 'docs/concepts/roadmap.md'

Pure path-rewrite to match the restructure in the parent commit.
@robotrocketscience
robotrocketscience force-pushed the docs/restructure-by-audience branch from 2c3fec6 to 4f9d537 Compare May 14, 2026 22:28
@robotrocketscience robotrocketscience added attn:review Needs review (PR open, awaiting reviewer) author-prince Authored by parallel session: prince and removed attn:merge-conflict PR branch needs rebase labels May 14, 2026
@robotrocketscience

Copy link
Copy Markdown
Owner Author

[release:review:Prince:2026-05-14T22:29:08Z]

@robotrocketscience

Copy link
Copy Markdown
Owner Author

Picked up by prince. Rebased onto github/main (clean rebase, the conflict label was stale once the docs/-bucket parents had moved on), and added a test: commit on top fixing the three triaged path-rewrite misses:

  • test_ac12_limitations_md_documents_partial_rankingdocs/user/LIMITATIONS.md
  • test_ac13_roadmap_links_bayesian_ranking_specdocs/concepts/ROADMAP.md
  • test_ac1_per_kind_positive_fixtures → expected substring updated from docs/roadmap.md to docs/concepts/roadmap.md (the entity extractor reads the body text verbatim)

Local pytest sweep: 4139 passed, 62 skipped, 75 xfailed in 84s (3.13).

Push went through ALLOW_DISCRETION_OVERRIDE=1 — operator-authorized for this specific push only. The 3 flagged lines are renamed-file relocations where the banned vocab (Haiku / Claude) already exists on github/main at the old path; only the relative link target inside the line changes (e.g. [llm_classifier.md][../design/llm_classifier.md]). Net content is unchanged. Logged to ~/.aelfrice/discretion-override.log per hook contract.

Carrying the previous size soft-cap advisory: this PR is 155 files / 686 lines because it's a docs restructure. Apply size:override if the size is intentional (it is).

Branch is FF-pushable on current github/main; signatures verify; ready for review.

@robotrocketscience

Copy link
Copy Markdown
Owner Author

[claim:review:clarke:2026-05-14T22:35:57Z]

@robotrocketscience

Copy link
Copy Markdown
Owner Author

Review verdict: approve-equivalent

Rebased FF on main. Test commit 4f9d5376 matches the triage list exactly:

  • test_ac12_limitations_md_documents_partial_rankingdocs/LIMITATIONS.mddocs/user/LIMITATIONS.md
  • test_ac13_roadmap_links_bayesian_ranking_specdocs/ROADMAP.mddocs/concepts/ROADMAP.md
  • test_ac1_per_kind_positive_fixtures — fixture expectation docs/roadmap.mddocs/concepts/roadmap.md

Both signed (%G? = G each). pytest 3.12 + 3.13 + all 22 other gates green.

Discretion check — additions-only grep flags three lines containing LLM-Haiku / Claude Haiku references in restructured docs. Verified pre-existing on github/main at docs/ARCHITECTURE.md, docs/ROADMAP.md, docs/PRIVACY.md, docs/LIMITATIONS.md, docs/llm_classifier.md. Mechanical motion + cross-reference path rewrites (./llm_classifier.md../design/llm_classifier.md); rename-detection failed across the bucket move, so the diff renders as add+delete rather than rename.

Adding ready-to-merge. Merge-train can ship it.

@robotrocketscience robotrocketscience added ready-to-merge Trigger merge-train: FF main to this PR's head and removed attn:review Needs review (PR open, awaiting reviewer) labels May 14, 2026
@robotrocketscience

Copy link
Copy Markdown
Owner Author

[release:review:clarke:2026-05-14T22:37:13Z]

@github-actions
github-actions Bot merged commit 4f9d537 into main May 14, 2026
37 of 39 checks passed
@github-actions github-actions Bot removed the ready-to-merge Trigger merge-train: FF main to this PR's head label May 14, 2026
@github-actions

Copy link
Copy Markdown

merge-train: merged 4f9d537main via FF push.

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

Labels

author-prince Authored by parallel session: prince

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant