Skip to content

Back-merge release/0.3.0 into develop - #20

Merged
ortizeg merged 7 commits into
developfrom
backmerge/0.3.0-to-develop
Jul 24, 2026
Merged

Back-merge release/0.3.0 into develop#20
ortizeg merged 7 commits into
developfrom
backmerge/0.3.0-to-develop

Conversation

@ortizeg

@ortizeg ortizeg commented Jul 24, 2026

Copy link
Copy Markdown
Owner

Companion to #19. Merge this after #19 lands.

Why this is required, not housekeeping

develop is currently missing four things that only exist on the release branch — and one of them is a live bug:

Missing from develop Impact
The packaging fix (force-include, core/paths.py) A wheel built from develop today ships zero skills. uv tool install whet would produce a CLI that reports "No skills found".
tests/test_packaging.py Nothing on develop would catch that regression.
Version bump to 0.3.0 develop still declares 0.1.0, behind the published 0.2.1.
CHANGELOG.md Would be lost on the next release.

It also fixes the divergence permanently

This is precisely the mistake that caused #19's ~100 add/add conflicts: main received a squash commit (7ee1eaa, "Release v0.1.0") that was never merged back into develop, so both branches recreated the same files independently from their shared ancestor.

Skipping this back-merge would repeat that exactly — main would hold the release commits, develop would not, and the next release would conflict all over again. Merging here brings 7ee1eaa into develop's ancestry so all three branches finally share history.

Verification

Merged cleanly — no conflicts.

  • uv run pytest tests/541 passed
  • ruff, format, mypy --strict, mkdocs build --strict → clean
  • Deliberate deletions confirmed still absent (no resurrection of agents/, skills/dvc, skills/pydantic-strict)
  • Wheel built from this branch: 430 files, 32 skills — the packaging fix is genuinely carried across

🤖 Generated with Claude Code

ortizeg and others added 7 commits February 9, 2026 20:44
## Summary

Complete implementation of **whet** — a multi-platform CLI tool that
installs expert skills into AI coding agents (Claude Code, Google
Antigravity, Cursor, GitHub Copilot).

This PR encompasses all 6 development phases, transforming the initial
AI/CV Claude Skills framework into a publishable PyPI package.

## Content Inventory

- **30 Skills** — CV/ML, infrastructure, experiment tracking, code
quality
- **6 Agents** — Expert Coder, ML Engineer, DevOps/Infra, Data Engineer,
Code Review, Test Engineer
- **6 Archetypes** — pytorch-training, cv-inference, data-pipeline,
library-package, model-zoo, research-notebook
- **4 Adapters** — Claude Code, Google Antigravity, Cursor, GitHub
Copilot

## Development Phases

1. **Foundation** — YAML frontmatter for SKILL.md, skill.toml metadata,
pixi→uv migration, dynamic test discovery
2. **CLI + Adapters** — Typer CLI
(`add`/`remove`/`list`/`search`/`info`/`install`), multi-platform
adapters
3. **Gap Filling Wave 1** — FastAPI, AWS SageMaker, Hugging Face skills
+ DevOps/Infra and Data Engineer agents
4. **Settings Engine + Doctor** — `settings generate/apply/diff` with
merge support, 10 health checks
5. **Scaffolding** — `whet init` with template rendering, 2 archetype
templates populated
6. **Distribution + Polish** — `whet update`, Gradio/Kubernetes skills,
release workflow, repo rename

## Infrastructure Changes

- Renamed repo from `ai-cv-claude-skills` → `whet` (46 references
updated across 39 files)
- CI workflows updated for `main`/`develop` branching model
- Tag-triggered release workflow: PyPI trusted publishing (OIDC) +
GitHub Releases
- `justfile` task runner replacing pixi tasks
- `uv` for dependency/environment management

## Test Results

- **203 tests passing** — skills, agents, archetypes, workflows,
integration
- Ruff clean (lint + format)
- MyPy strict clean
- Package builds: `whet-0.1.0-py3-none-any.whl`

## Post-Merge Steps

1. Set `develop` as default branch
2. Create GitHub environment `pypi` in repo Settings
3. Add trusted publisher on PyPI (owner: `ortizeg`, repo: `whet`,
workflow: `release.yml`, env: `pypi`)
4. Tag and release: `git tag v0.1.0 && git push --tags`

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Bump version to 0.3.0 and add a CHANGELOG.

Version note: PyPI already carries 0.2.1 while both main and develop declared
0.1.0, and the repository has no git tags — 0.2.1 was published outside the
tag-triggered workflow. Releasing from 0.1.0 would build a package older than
what is already live, so this bump goes past it.

0.3.0 rather than 0.2.2 because the release is breaking: the agents concept and
the --agents-only/--skills-only flags are removed, two skills are deleted, one
is renamed, and whet init changes behaviour. Below 1.0.0, breaking changes ship
in a minor bump.

536 tests pass; ruff, format, mypy --strict, and mkdocs --strict clean.
uv build produces whet-0.3.0 wheel and sdist.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Caught by installing the built wheel into a clean venv and running the CLI
outside any checkout, which is what a user actually does.

`whet list` printed "No skills found" and `whet doctor` reported a missing
skills directory. Two causes:

- [tool.hatch.build.targets.wheel] packaged only src/whet. The bundled content
  was listed for the sdist but never the wheel, so the published artifact was
  the CLI with none of the product: 36 files, zero SKILL.md.
- skills_dir, archetypes_dir, and the settings templates resolved via
  Path(__file__).parents[3], which is the repository root in a checkout but
  points outside site-packages once installed.

Fixes:
- Force-include skills/, archetypes/, and settings/ into the wheel under
  whet/_data/. The wheel goes from 36 files to 430 — 32 SKILL.md, 155
  reference files, 125 archetype template files.
- Add whet.core.paths.bundled_dir(), which prefers the packaged copy and falls
  back to the repo layout so a source checkout still works with no build step.
- Drop the stale agents/ entry from the sdist include list.

Verified end to end: installing the wheel in a clean venv and running outside
the repo now lists 32 skills, passes doctor, and `whet init cv-inference-service`
scaffolds a project with 8 skills and 43 reference files installed.

Adds tests/test_packaging.py so this cannot ship broken again, including a
check that packaging never references a directory that no longer exists.

541 tests pass; ruff, format, mypy --strict, mkdocs --strict clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
main carried a squash commit (7ee1eaa, 'Release v0.1.0') that was never merged
back into develop, so the same files were added independently on both sides and
git saw ~100 add/add conflicts.

Resolved with -s ours: main's content is a strict subset of this branch, and
every file present only on main is a reviewed deletion — the agents/ tree and
its docs (removed in #7), skills/dvc, and skills/pydantic-strict (renamed to
pydantic). Nothing unique is discarded.

Recording main as a parent reconciles the histories so future develop -> main
merges are clean.
Branch protection on main requires a status check named 'docs', but nothing
could ever produce it:

- docs.yml only triggered on push to main, so it never ran on a pull request
- its jobs were named build/deploy, so even when it did run it reported
  'build' and 'deploy' — never 'docs'

The result was circular: merging to main required a check that only a push to
main could produce. PR #19 sat with three green checks and a fourth that was
not pending but simply absent.

- Rename the build job to `docs` so it satisfies the required context.
- Add a pull_request trigger for main and develop.
- Gate artifact upload and the deploy job to pushes on main, so PRs build the
  docs without touching GitHub Pages.
- Build with --strict on PRs. This is the check that caught the dangling
  agent-page links rather than letting them ship.
- Key concurrency by ref so parallel PR doc builds do not queue behind one
  another.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@ortizeg
ortizeg merged commit ba39ac8 into develop Jul 24, 2026
5 checks passed
@ortizeg
ortizeg deleted the backmerge/0.3.0-to-develop branch July 24, 2026 15:42
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