Skip to content

Restructure: relocate docs/integrated/ → integrated/ (reverts 3bfb947)#6

Merged
rafael5 merged 1 commit into
mainfrom
chore/relocate-integrated
May 11, 2026
Merged

Restructure: relocate docs/integrated/ → integrated/ (reverts 3bfb947)#6
rafael5 merged 1 commit into
mainfrom
chore/relocate-integrated

Conversation

@rafael5
Copy link
Copy Markdown
Collaborator

@rafael5 rafael5 commented May 11, 2026

Summary

Reverts the 3bfb947 move of pipeline outputs into docs/integrated/.
The committed reference data (TSV + JSON, 25 files) returns to
integrated/ at the repo root, alongside its semantic sibling
per-source/.

Triggered by a cross-repo cleanup directive: docs/ should hold
only human-readable prose; technical artifacts, output, data, and
metadata belong elsewhere.

Why revert now (rather than later)

  1. The code's mental model already lives at repo-root integrated/. Every emit_*.py defaults to Path("integrated"); reconcile.py writes there; validate.py carried a docs/-first preference codepath as a layout-shift workaround. The rename was a filesystem move that the rest of the codebase never internalized.
  2. ADR-005 explicitly frames the layer as a machine-readable interface, not a reference document. docs/ connotes prose for humans — spec.md, ADRs, the user guide. commands.tsv and grammar-surface.json are wire-format the downstream consumers (tree-sitter-m, m-cli, AI agents) read at their build time. They belong alongside their semantic sibling per-source/, also at the root.
  3. The layout shift was leaking into sibling repos as a compatibility shim — see m-cli/src/m_cli/lint/_keywords.py:25 walking ("", "docs") to find m-standard's integrated/. Phase 0's dist/repo.meta.json just made the current path public; ossifying docs/integrated/ now would force every future consumer to either replicate the shim or break when this gets fixed later.

What changes

File / surface Before After
25 files docs/integrated/* integrated/* (pure git mv, no content edits)
dist/repo.meta.json 9 exposes.* paths prefixed docs/integrated/ integrated/
src/m_standard/tools/validate.py docs/integrated/ preferred, integrated/ fallback reversed; integrated/ canonical, docs/integrated/ kept as fallback one cycle
AGENTS.md Build / Verify / Guardrails mention docs/integrated/ reference integrated/

Phase 0 contract continuity

The dist/repo.meta.json pointers move atomically with the files. The org-level phase0-smoke run in .github will pick up the new paths on the next run.

Verified locally:

  • make check-manifest
  • make test 164 passed ✓
  • canonical Track A validator (.github/profile/build/validate-repo-meta.py) green against the new manifest ✓

Follow-up

m-cli/src/m_cli/lint/_keywords.py _find_m_standard() shim can drop the ("", "docs") walk once this lands on main — separate small PR.

Revisited the 3bfb947 move once Phase 0 made the layout a public
contract. Three reasons stack for reverting:

1. The code's mental model already lives at repo-root integrated/.
   Every emit_*.py defaults to Path("integrated"); reconcile.py writes
   there; validate.py carried a docs/-first preference codepath as a
   layout-shift workaround. The rename was a filesystem move that the
   rest of the codebase never internalized.

2. ADR-005 frames the layer as a machine-readable interface, not a
   reference document. docs/ connotes prose for humans — spec.md,
   ADRs, the user guide. commands.tsv and grammar-surface.json are
   wire-format the downstream consumers (tree-sitter-m, m-cli, AI
   agents) read at their build time. They belong alongside their
   semantic sibling per-source/, also at the root.

3. The layout shift was leaking into other repos as a compatibility
   shim — see m-cli/src/m_cli/lint/_keywords.py walking ("", "docs")
   to find m-standard's integrated/. Phase 0's dist/repo.meta.json
   just made the current path public; ossifying docs/integrated/ now
   would force every future consumer to either replicate the shim or
   break when this gets fixed later.

Cost paid by this commit:
- git-mv of 25 files docs/integrated/* → integrated/
- dist/repo.meta.json: 9 exposes paths reverted
- validate.py: canonical layout flipped (integrated/ preferred,
  docs/integrated/ kept as fallback for one cycle)
- AGENTS.md Build/Verify/Guardrails references updated

Phase 0 smoke test continues to pass — pointers move with files
atomically. m-cli's _find_m_standard() shim can be simplified in a
follow-up commit once this lands on main.
@rafael5 rafael5 merged commit 929144d into main May 11, 2026
1 check passed
@rafael5 rafael5 deleted the chore/relocate-integrated branch May 11, 2026 00:07
rafael5 added a commit that referenced this pull request May 11, 2026
Two cleanups bundled:

1. make check-docs-prose — cross-repo guardrail enforcing that docs/
   holds only human-readable prose (.md, .markdown, images, .gitkeep).
   Non-prose artifacts belong under dist/, examples/, templates/, or a
   top-level domain dir. Wired into CI alongside the existing manifest
   drift gate. Engine-free, fast, find-based.

2. validate.py _integrated_dir — drop the docs/integrated/ legacy
   fallback. The relocation back to top-level integrated/ (PR #6) is
   committed; the fallback's job was to support stale checkouts
   during the migration window, which is now closed. Three-line
   simplification — single canonical path.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant