Skip to content

Promote develop to main: Registered Skills Tree Test and the Windows Test Job - #2558

Merged
ptr727 merged 2 commits into
mainfrom
develop
Oct 8, 2026
Merged

ptr727 merged 2 commits into
mainfrom
develop

Conversation

@ptr727

@ptr727 ptr727 commented Oct 8, 2026

Copy link
Copy Markdown
Owner

Summary

Promotes two changes from the windows lane.

  • #2554 adds a test for each loader (bootstrap.sh and bootstrap.ps1). Each one runs the kept-tree fetch, the swap, the skills install and the cleanup in order, and asserts that the directory the installer registers as the Claude Code marketplace is the kept skills-tree and still exists after the run. It passes natively on Windows and on Linux, and running the installer before the swap fails it.
  • #2555 adds a hub-only windows-test job to test-pull-request.yml. It runs the suite on windows-latest from Git Bash with uv installed, and check-workflow-status now requires it. Its first green hosted run took about 196s for 2277 tests. The required check's name is unchanged, and no other repository's gate moves.

Closes #1756
Closes #1143

🤖 Generated with Claude Code

ptr727 and others added 2 commits October 8, 2026 09:58
…un (#2554)

## Summary

Each loader's kept-tree path now runs as one sequence under a test:
fetch, swap, skills install, cleanup. The installer in the fixture is
the real wrapper (`install-skills.sh` or `install-skills.ps1`) beside a
stand-in `scripts/skills_install.py` that records the `ROOT` it would
pass to `claude plugin marketplace add`. Each test asserts that the
recorded directory is the kept `skills-tree`, that it still holds the
installer once the cleanup has run, and that no staging or retired tree
is left beside it.

This is the test #1756 named as its done condition: the registered
directory outlives the run, on both platforms. The kept-tree design
itself landed in #1773.

## Verification

- **Windows, native:** `tests/test_bootstrap.py` passes (68 passed, 32
skipped). The new PowerShell case runs the real `bootstrap.ps1`
functions under pwsh 7 on this host.
- **Linux:** in `python:3.12-slim` as a non-root user,
`TestKeptTreeHandling` passes (20 tests).
`TestPowerShellKeptTreeHandling` passes too (25 tests, 5 skipped), run
under pwsh 7 copied from the PowerShell image.
- **Mutation:** swapping the installer ahead of the swap in each loader
makes its test fail. The recorder then names `skills-tree.new`, the
directory the cleanup removes. This was checked natively for
`bootstrap.ps1` and in the container for `bootstrap.sh`.
- **Live host:** on this Windows host, the `projecttemplate-fleet`
marketplace's folder source is the kept tree under
`%LOCALAPPDATA%\host-setup\skills-tree`. It is still there after the
bootstrap run that registered it, with no `.new` or `.old` beside it.
- **Checks:** ruff check, ruff format, mypy, and the prose gate are
clean. One local strict-review pass raised no findings.

Refs #1756

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
## Summary

Adds a `windows-test` job to the hub's own `test-pull-request.yml`. It
runs the hub's unittest suite on `windows-latest` from Git Bash under
Python 3.13, and `check-workflow-status` now requires it beside
`validate`. The required check's name does not change.

This follows the maintainer's answer recorded on #1143: add a
`windows-latest` job once the suite passes on Windows, which it has
since #2488. The maintainer also chose to keep the job hub-only. The
reusable `validate-task.yml` and
`catalog/snippets/workflows/test-pull-request.yml` are untouched, so no
other repository's gate moves.

## Notes

- The job runs the same `unittest discover -s tests` as the Linux leg,
without coverage, since the Linux leg owns the Codecov report.
- Pins match the ones already in the repo: checkout v7.0.1 as in
`validate-task.yml`, setup-python v7.0.0 as in
`canonical-review-sweep.yml`.
- The `spec/files.json` contract for this file is interface fidelity
with `requiredJobKeys` `[check-workflow-status, validate]`, so an extra
job conforms.
- The hosted runner differs from a developer Windows host. It runs as
admin, so symlink tests skip locally but run in CI. Its Docker is in
Windows-container mode, and its temp path may be an 8.3 short name. This
PR's first run is the measurement of those differences, and a failure
there gets its own fix before this merges.

## Verification

- actionlint and editorconfig-checker, run through
`scripts/docker_lint.py`, pass. So do `scripts/repo_gate.py` (sha-pin
included), `spec/validate.py`, and the prose gate with comments allowed.
- One local strict-review pass raised no findings.

Refs #1143

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings October 8, 2026 17:26
@coderabbitai

coderabbitai Bot commented Oct 8, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: Repository: ptr727/ProjectTemplate/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 39143d22-8602-447f-8325-896469c8f21b
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

Both changed files were reviewed, and no unresolved issues were identified.

0 open findings

What changed in this PR

This PR promotes bootstrap skills-tree tests and a Windows CI test job to main, strengthening checks for two supported host platforms.

Changes:

  • Tests that the skills installer registers a tree that survives bootstrap cleanup on Linux and Windows.
  • Runs the Python test suite on Windows and requires that job to pass before the PR workflow succeeds.
File Description
tests/​test_bootstrap.py Adds kept-tree registration tests for both loaders.
.github/​workflows/​test-pull-request.yml Adds a required Windows test job.

🧠 Review effort: Lite


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@codecov

codecov Bot commented Oct 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 58.40%. Comparing base (80b5f01) to head (31c4bbd).
⚠️ Report is 331 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2558   +/-   ##
=======================================
  Coverage   58.40%   58.40%           
=======================================
  Files          16       16           
  Lines        8090     8090           
=======================================
  Hits         4725     4725           
  Misses       3365     3365           
Flag Coverage Δ
python-3.13 58.40% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ptr727
ptr727 merged commit 976f347 into main Oct 8, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants