Use claude-sandbox and tidy up claude skills.#57
Merged
Conversation
Replace AGENTS.md + SKILLS.md + CLAUDE_NOTES.md with a much smaller CLAUDE.md (project-specific rules only) and three proper Claude skills under .claude/skills/ (beckhoff-xml, ads-simulator-testing, mermaid-diagrams). Skills surface automatically via frontmatter descriptions; activation prompts no longer needed.
- client.py: render I/O device dict as a list so loguru's formatter
doesn't crash on the outer '{...}' braces
- catio_dynamic_coe.py: demote deliberate compound-type CoE skips from
WARNING to DEBUG and drop the unreachable second guard
- catio_controller.py: suppress the attribute-map warning for
notification paths containing '._unreferenced_.' (e.g. WcState)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Mirrors gilesknap/claude-sandbox#27 (Shape B) onto this repo's embedded snapshot so `uv run`/`ruff`/`pytest` resolve on PATH inside the claude sandbox, matching how they resolve in the regular devcontainer shell. Without this, `uv` falls back to creating a parallel `.venv/` in CWD instead of using the /cache-backed venv that the devcontainer's remoteEnv points to. - claude-shadow: existence-guard `$VIRTUAL_ENV/bin` and append it to the sandbox PATH (still after `$HOME/.local/bin` so the `/usr/local/bin/claude` shadow keeps winning resolution). - claude-shadow: pass VIRTUAL_ENV, UV_PROJECT_ENVIRONMENT, UV_CACHE_DIR, UV_PYTHON_CACHE_DIR, PRE_COMMIT_HOME through --clearenv (only when set). This is a temporary local mirror of an unmerged upstream patch (issue #27); on next re-promote from claude-sandbox after that lands, the snapshot will pick up the canonical version. Verified: all 88 cases pass in a patched copy of claude-sandbox's tests/bwrap_argv.sh (77 existing + 11 new for the venv passthrough). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #57 +/- ##
==========================================
- Coverage 73.92% 73.91% -0.01%
==========================================
Files 19 19
Lines 4130 4129 -1
==========================================
- Hits 3053 3052 -1
Misses 1077 1077 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Contributor
Author
|
@ggayDiamond I'd like to merge this - its only claude things and some changing of log-levels for some log items that were deemed incorrectly levelled. Reason is I have the big refactor of symbols.py ready to PR over it - and its fully working already! |
Contributor
Author
|
@coretl I have removed the generic skills from .claude |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Stand up the bwrap-based
claude-sandboxfor this repo and replace theold monolithic agent docs with a proper
CLAUDE.md+ per-skill filesunder
.claude/skills/. A handful of unrelated tidy-ups ride along.Sandbox & agent context (main theme)
initial .claude addition(7c87445) — embed theclaude-sandboxsnapshot under.devcontainer/claude-sandbox/(
claude-shadow,install.sh,promote.sh), wire it throughdevcontainer.json+postCreate.sh, and add.claude/scaffolding(
settings.json,verify-sandbox+memocommands, sandbox-checkhook, statusline, justfile).
Restructure agent context: CLAUDE.md + .claude/skills/(8535007) — delete
AGENTS.md/SKILLS.md/CLAUDE_NOTES.md(623 lines combined) in favour of a 66-line
CLAUDE.mdwithproject-specific rules only, plus three skills that surface
automatically via frontmatter:
beckhoff-xml,ads-simulator-testing,mermaid-diagrams.add more skills for catio(44753c6) — two more skills:fastcs-controller-connect(theawait super().connect()gotcha)and
test-system-preflight(port-collision diagnostics fortest_system.py).add AdsSymbolTypePattern notes to beckhoff skill(f2f6621) —extends the
beckhoff-xmlskill withAdsSymbolTypePatternnotes.forward VIRTUAL_ENV + uv/pre-commit vars into the sandbox(6395500) — temporary local mirror of upstream
gilesknap/claude-sandbox#27souv run/ruff/pytestresolve on PATH inside the sandbox instead of falling back to a
parallel
.venv/. Will be reverted on next re-promote once fix simulator to accept all CoE #27merges upstream.
Other tidy-ups bundled in
update to fastcs 0.14.0(0c4c609) — bumppyproject.toml+uv.lockfrom a beta to the 0.14.0 release.update pyright(cfa702e) —uv.lockonly.quiet down three startup log issues(45d7731) — threeunrelated noise fixes at startup: render the I/O device dict as a
list so loguru doesn't crash on
{...}braces (client.py);demote intentional compound-type CoE skips from WARNING to DEBUG
and drop an unreachable guard (
catio_dynamic_coe.py); suppressthe attribute-map warning for
._unreferenced_.notificationpaths like
WcState(catio_controller.py).enable input channels on EL3314(4875812) — flip sixselected:flags interminal_types.yamlto enable the EL3314input channels.
Test plan
uv run pytestgreen locallyuv run ruff check && uv run pyright src testscleanjust verify-sandboxpasses (16-check battery + 10adversarial probes)
uvresolves on PATH inside the sandbox (no stray.venv/created in CWD)fastcs-catio iocneeds the EtherCAT network