Skip to content

refactor: phase-b folder reorg — consolidate SDK under Gradata/#121

Merged
Gradata merged 2 commits intomainfrom
refactor/phase-b-reorg
Apr 20, 2026
Merged

refactor: phase-b folder reorg — consolidate SDK under Gradata/#121
Gradata merged 2 commits intomainfrom
refactor/phase-b-reorg

Conversation

@Gradata
Copy link
Copy Markdown
Owner

@Gradata Gradata commented Apr 20, 2026

Summary

  • Consolidates all public SDK surface under Gradata/ (src, tests, docs, examples, pyproject, uv.lock, README, CHANGELOG, LICENSE, Docker, npm packages, scripts, hooks).
  • Splits skills/ — dev/core/tools → Gradata/skills/; sales/marketing → Sprites/skills/.
  • Moves sales/private content into Sprites/ (domain, brain/scripts).
  • Root stays minimal: CLAUDE.md, hidden tool dirs, workspace markers.
  • .gitignore updated: Sprites/, Hausgem/, .reorg/ excluded from public repo.

520 renames + 13 new + 1 modified. Executes the plan in .reorg/PHASE-B-RUNBOOK.md.

Test plan

  • After merge: cd Gradata && pip install -e . to re-register editable install
  • pytest Gradata/tests/ -x --timeout 30 -q — expect 1339 pass / 7 skip
  • Confirm ~/.claude/settings.json BRAIN_DIR still resolves (unchanged — brain still at C:/Users/olive/SpritesWork/brain until Phase B.2)
  • Verify SDK publish workflow path refs still resolve (may need follow-up PR to update working-directory: Gradata)

Generated with Gradata

Executes the Phase B reorg plan from .reorg/root-audit.md. Moves the
public SDK surface out of the workspace root into a single `Gradata/`
subfolder, so the root is no longer cluttered with legacy mixed-purpose
files.

## Moves

- `src/`, `tests/`, `docs/`, `examples/` → `Gradata/{src,tests,docs,examples}/`
- `pyproject.toml`, `uv.lock` → `Gradata/`
- SDK public docs: `README.md`, `CHANGELOG.md`, `LICENSE`,
  `CODE_OF_CONDUCT.md`, `CONTRIBUTING.md`, `SECURITY.md`, `CREDITS.md`
  → `Gradata/`
- Deploy config: `Dockerfile`, `docker-compose.yml`, `.dockerignore`,
  `mkdocs.yml` → `Gradata/`
- npm/dist: `packages/`, `gradata-install/`, `gradata-plugin/`,
  `package.json`, `package-lock.json`, `node_modules/`, `design-system/`
  → `Gradata/`
- `scripts/`, `hooks/` → `Gradata/{scripts,hooks}/` (SDK tooling)
- `skills/core,dev,tools,session-start,wrap-up/` → `Gradata/skills/`
- `skills/sales,marketing/` → `Sprites/skills/`
- `brain/scripts/` → `Sprites/brain/scripts/` (active brain runtime scripts)

## Stays at root (constraints)

- `CLAUDE.md` — claude hooks resolve relative to WORKING_DIR
- `.env`, `.mcp.json` — secrets, gitignored
- `.agentignore`, `.claudeignore`, `.gitignore`, `.gitattributes` — at-root
- `.claude/`, `.codex/`, `.vscode/`, `.obsidian/`, `.claude-plugin/` — tool state

## Gitignore

- Added `Sprites/`, `Hausgem/`, `.reorg/` as private/workspace-only dirs
- Existing `src/...` / `docs/...` / `scripts/*` patterns still match
  paths inside `Gradata/` via glob; no explicit rewrites needed for
  ignored files

## Post-merge action required (local dev)

After pulling this on a dev machine, re-register the editable install:

    cd Gradata && pip install -e .

This re-points `python -m gradata.*` at the new `Gradata/src/gradata`
path. All SDK hooks will fail silently until this is done.

Co-Authored-By: Gradata <noreply@gradata.ai>
@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Apr 20, 2026

Too many files changed for review. (535 files found, 100 file limit)

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 20, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: f484dcb6-9143-474b-8737-2536cb636e26

📥 Commits

Reviewing files that changed from the base of the PR and between 75e09cd and 5f5e38b.

📒 Files selected for processing (1)
  • .github/workflows/sdk-publish.yml

📝 Walkthrough
  • Consolidated the public SDK under Gradata/: moved src/, tests/, docs/, examples/, pyproject.toml, uv.lock, README/CHANGELOG/LICENSE, Docker files, npm packages, scripts, hooks, etc. into Gradata/.
  • Split skills/ tree: dev/core/tools → Gradata/skills/; sales/marketing and private runtime content → Sprites/ (e.g., Sprites/brain/).
  • Repository root minimized to a few files and hidden tool dirs; Gradata/ now contains the SDK sources and packaging artifacts (uv.lock, pyproject.toml, dist built from Gradata/).
  • .gitignore updated to exclude Phase‑B artifacts/directories: Sprites/, Hausgem/, .reorg/ and internal Gradata docs paths (audit reports, marketing strategy).
  • CI/workflow change: sdk-publish.yml now reads project.version from Gradata/pyproject.toml, sets working-directory: Gradata for build, and uploads artifacts from Gradata/dist/.
  • Breaking changes: repository layout moved — local dev and CI must use Gradata/ as the package root (post-merge: cd Gradata && pip install -e .; update any workflows or tooling that reference root pyproject or dist paths).
  • No security fixes or new public API methods introduced.
  • Change size: ~520 renames, 13 new files, 1 modified file (.gitignore); follows .reorg/PHASE-B-RUNBOOK.md.

Walkthrough

Updated repository ignore rules and adjusted CI workflow to operate from the Gradata/ subdirectory: added gitignore entries for Phase B reorg artifacts and Gradata docs; CI now reads Gradata/pyproject.toml, builds in Gradata, and uploads artifacts from Gradata/dist/.

Changes

Cohort / File(s) Summary
Gitignore Configuration
/.gitignore
Added ignore entries for Phase B reorg artifacts and directories: Sprites/, Hausgem/, .reorg/, and specific Gradata docs paths (Gradata/docs/audit-reports/, Gradata/docs/gradata-marketing-strategy.md).
CI Workflow
.github/workflows/sdk-publish.yml
Changed pyproject version lookup to Gradata/pyproject.toml, set working-directory: Gradata for build steps, and updated artifact upload path to Gradata/dist/.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested labels

refactor, ci

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately reflects the main change—a Phase B reorganization that consolidates the SDK under Gradata/—matching the primary objective of the changeset.
Description check ✅ Passed The description is directly related to the changeset, detailing SDK consolidation under Gradata/, folder restructuring, .gitignore updates, and test plans that align with the 520 renames and modified .gitignore.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/phase-b-reorg

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

After Phase B, pyproject.toml and build output live under Gradata/.
Point the verify step at Gradata/pyproject.toml, run `uv build` from
Gradata/, and upload artifacts from Gradata/dist/.

Co-Authored-By: Gradata <noreply@gradata.ai>
@Gradata Gradata merged commit decce7c into main Apr 20, 2026
@Gradata Gradata deleted the refactor/phase-b-reorg branch April 20, 2026 07:04
Gradata added a commit that referenced this pull request Apr 20, 2026
After Phase B (#121) the SDK lives under `Gradata/`, not the repo
root. New contributors running the documented install steps would
land in the wrong directory and hit a "No pyproject.toml" error.

- CONTRIBUTING.md: `cd gradata/Gradata` and note the subfolder layout
- docs/contributing.md: same update, keeps the two docs in sync

Co-Authored-By: Gradata <noreply@gradata.ai>
Gradata added a commit that referenced this pull request Apr 20, 2026
After Phase B (#121) the SDK lives under `Gradata/`, not the repo
root. New contributors running the documented install steps would
land in the wrong directory and hit a "No pyproject.toml" error.

- CONTRIBUTING.md: `cd gradata/Gradata` and note the subfolder layout
- docs/contributing.md: same update, keeps the two docs in sync

Co-authored-by: Gradata <noreply@gradata.ai>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant