Skip to content

Moar skillz (squashed): refinements, factorings and extensions#440

Merged
goodboy merged 4 commits intomainfrom
moar_skillz_squashed
Apr 10, 2026
Merged

Moar skillz (squashed): refinements, factorings and extensions#440
goodboy merged 4 commits intomainfrom
moar_skillz_squashed

Conversation

@goodboy
Copy link
Copy Markdown
Owner

@goodboy goodboy commented Apr 10, 2026

Add repo-local claude skills, ai.skillz symlinks + .gitignore

Motivation

Replacement for #428 with factored content now moved to our new
ai.skillz repo and only the tractor-specific git
history included to avoid review noise and book keeping.

The prior PR bundled shared skill definitions inline; this squashed
branch separates concerns — shared skills live as symlinks into
ai.skillz while repo-local skills (run-tests, conc-anal,
pr-msg format ref) and config (.gitignore, settings.local.json)
stay in-tree.


Summary of changes

  • (0286d36e) Add repo-local claude skills + settings +
    .gitignore patterns.
    • New run-tests skill with test-directory layout, change-type
      mapping, flaky-test list, and worktree venv detection.
    • New conc-anal skill for structured concurrency analysis of
      trio-based primitives (shared-state inventory, checkpoint
      mapping, race tracing).
    • New pr-msg/format-reference.md with canonical PR description
      structure and cross-service ref-link strategy.
    • Add ai_notes/docs_todos.md noting the README/literalinclude
      sync idea.
    • Drop old inline commit-msg/SKILL.md (replaced by ai.skillz
      symlink).
    • Expand settings.local.json permissions for common shell + gh
      CLI + uv cmds.
    • Extend .gitignore for skill artifacts, symlinks, worktrees, and
      review ephemera.
  • (2ee86ddb) Migrate shared skills to ai.skillz symlinks.
    • .gitignore entries for py-codestyle, code-review-changes,
      open-wkt, close-wkt, prompt-io, plan-io,
      resolve-conflicts, inter-skill-review, yt-url-lookup — all
      deployed locally via deploy-skill.sh.
    • Hybrid skills (commit-msg, pr-msg) get symlinked SKILL.md +
      references/ while keeping repo-local assets (style guide, format
      ref, msgs/).
  • (a0607f36) Allow open-wkt / close-wkt skills in
    settings.local.json permissions.

Scopes changed

  • .claude.settings.local.json — expand permission allow-list for
    shell, gh, uv, and skill invocations.
  • .claude.skills.run-tests — new skill for running the tractor
    test suite with worktree-aware venv detection and
    change-type-to-test mapping.
  • .claude.skills.conc-anal — new skill for structured concurrency
    analysis targeting trio checkpoint semantics and tractor
    cache/lock patterns.
  • .claude.skills.pr-msg.format-reference — canonical PR description
    format doc with cross-service md ref-link strategy.
  • .claude.skills.commit-msg — old inline SKILL.md dropped; now
    symlinked from ai.skillz.
  • .claude.ai_notes.docs_todos — design note on README code-example
    auto-sync via Sphinx literalinclude.
  • .gitignore — patterns for skill msg artifacts, ai.skillz
    symlinks, review ephemera, and claude worktrees.

Future follow up

See tracking issue #417 for follow-up items from this PR.


Reviewer suggestion: Copilot (auto-review)

(this pr content was generated in some part by claude-code)

Copilot AI review requested due to automatic review settings April 10, 2026 18:37
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR refreshes and extends the repo’s .claude “skill” tooling by adding new workflow skills/docs, updating ignore rules for generated artifacts and machine-local symlinks, and broadening local Claude permission allow-rules.

Changes:

  • Add new .claude skills/docs (run-tests, conc-anal, pr-msg format reference) and an internal docs TODO note.
  • Update .gitignore to ignore skill-generated artifacts, machine-local configs/symlinks, and Claude worktree directories.
  • Expand .claude/settings.local.json allowed command/tool list for the updated skill workflow.

Reviewed changes

Copilot reviewed 6 out of 7 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
.gitignore Ignores new skill outputs, machine-local symlinks/config, and Claude worktree dirs.
.claude/skills/run-tests/SKILL.md Adds a pytest-running skill with worktree/venv guidance and project-specific pytest flags.
.claude/skills/pr-msg/format-reference.md Adds a cross-forge PR description format/reference-linking guide.
.claude/skills/conc-anal/SKILL.md Adds a structured-concurrency analysis skill for trio/tractor code.
.claude/skills/commit-msg/SKILL.md Removes the in-repo commit-msg skill doc (presumably replaced by a machine-local/symlinked version).
.claude/settings.local.json Broadens local Claude permissions to support the new/expanded skills.
.claude/ai_notes/docs_todos.md Notes a docs improvement idea using Sphinx literalinclude.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +7 to +16
allowed-tools:
- Bash(python -m pytest *)
- Bash(python -c *)
- Bash(ls *)
- Bash(cat *)
- Read
- Grep
- Glob
- Task
---
Copy link

Copilot AI Apr 10, 2026

Choose a reason for hiding this comment

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

The run-tests skill instructions require commands that aren't permitted by its own allowed-tools (e.g. git rev-parse ..., python --version, running uv sync, and shell pipelines like ... | tail ...). Either expand allowed-tools to cover the documented workflow (git/uv/python path variants + basic shell utils), or adjust the steps/examples to only use the currently allowed commands so the skill is actually executable under its tool restrictions.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Owner Author

@goodboy goodboy Apr 10, 2026

Choose a reason for hiding this comment

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

🤖 response authored by claude-code

Valid — added Bash(python --version *), Bash(git rev-parse *), and Bash(UV_PROJECT_ENVIRONMENT=py* uv sync *) to allowed-tools so the documented pre-flight workflow is actually executable under tool restrictions.

📎 fixed in 6b046501

Comment on lines +92 to +99
### Worktree venv detection

If running inside a git worktree (`git rev-parse
--git-common-dir` differs from `--git-dir`), verify
the Python being used is from the **worktree's own
venv**, not the main repo's. Check:

```sh
Copy link

Copilot AI Apr 10, 2026

Choose a reason for hiding this comment

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

This section tells the skill to detect worktree state via git rev-parse --git-common-dir/--git-dir, but git isn’t in allowed-tools for this skill (only python, ls, cat). As written the pre-flight worktree detection step can’t be performed when the tool restrictions are enforced.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Owner Author

@goodboy goodboy Apr 10, 2026

Choose a reason for hiding this comment

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

🤖 response authored by claude-code

Same fix as above — Bash(git rev-parse *) now in allowed-tools.

📎 fixed in 6b046501

Comment thread .claude/settings.local.json Outdated
Comment on lines +21 to +28
"Bash(UV_PROJECT_ENVIRONMENT=py313 uv sync:*)",
"Bash(UV_PROJECT_ENVIRONMENT=py313 uv run:*)",
"Write(.claude/*commit_msg*)",
"Write(.claude/git_commit_msg_LATEST.md)",
"Skill(run-tests)",
"Bash(echo EXIT:$?:*)",
"Bash(gh api:*)",
"Bash(gh pr:*)",
Copy link

Copilot AI Apr 10, 2026

Choose a reason for hiding this comment

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

The allow-list contains duplicate entries for Bash(gh api:*) and Bash(gh pr:*), and it hardcodes UV_PROJECT_ENVIRONMENT=py313 even though the run-tests skill documentation expects selecting the env based on the active Python minor. Consider deduplicating and aligning the allowed uv commands with the documented py<MINOR> workflow to avoid the skill being blocked on non-3.13 setups.

Suggested change
"Bash(UV_PROJECT_ENVIRONMENT=py313 uv sync:*)",
"Bash(UV_PROJECT_ENVIRONMENT=py313 uv run:*)",
"Write(.claude/*commit_msg*)",
"Write(.claude/git_commit_msg_LATEST.md)",
"Skill(run-tests)",
"Bash(echo EXIT:$?:*)",
"Bash(gh api:*)",
"Bash(gh pr:*)",
"Bash(UV_PROJECT_ENVIRONMENT=py* uv sync:*)",
"Bash(UV_PROJECT_ENVIRONMENT=py* uv run:*)",
"Write(.claude/*commit_msg*)",
"Write(.claude/git_commit_msg_LATEST.md)",
"Skill(run-tests)",
"Bash(echo EXIT:$?:*)",

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Owner Author

@goodboy goodboy Apr 10, 2026

Choose a reason for hiding this comment

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

🤖 response authored by claude-code

Deduped gh api/gh pr entries and widened UV_PROJECT_ENVIRONMENT=py313 to py* so non-3.13 setups aren't blocked. Also reordered for logical grouping (git cmds, shell utils, gh CLI, uv, write perms, skills).

📎 fixed in 6b046501

goodboy added 3 commits April 10, 2026 16:37
Add `/run-tests`, `/conc-anal` skill definitions and
`/pr-msg` `format-reference.md` that live in-repo
(not symlinked from `ai.skillz`).

- `/run-tests`: `pytest` suite runner with
  dev-workflow helpers, never-auto-commit rule.
- `/conc-anal`: concurrency analysis skill.
- `/pr-msg` `format-reference.md`: canonical PR
  description structure + cross-service ref-links.
- `ai_notes/docs_todos.md`: `literalinclude` idea.
- `settings.local.json`: permission rules for `gh`,
  `git`, `python3`, `cat`, skill invocations.
- `.gitignore`: ignore commit-msg/pr-msg `msgs/`,
  `LATEST` files, review ctx, session conf, claude
  worktrees.

(this patch was generated in some part by [`claude-code`][claude-code-gh])
[claude-code-gh]: https://github.com/anthropics/claude-code
Drop inline `commit-msg/SKILL.md` — now deployed
as a symlink from the central `ai.skillz` repo via
`deploy-skill.sh`.

Gitignore all symlinked skill dirs so they stay
machine-local:
- fully-symlinked: `py-codestyle`, `close-wkt`,
  `open-wkt`, `plan-io`, `prompt-io`,
  `code-review-changes`, `resolve-conflicts`,
  `inter-skill-review`, `yt-url-lookup`
- hybrid (symlinked SKILL.md + references):
  `commit-msg/SKILL.md`, `pr-msg/SKILL.md`,
  `pr-msg/references`

(this patch was generated in some part by [`claude-code`][claude-code-gh])
[claude-code-gh]: https://github.com/anthropics/claude-code
@goodboy goodboy force-pushed the moar_skillz_squashed branch from c8ffc0f to a0607f3 Compare April 10, 2026 20:37
@goodboy goodboy mentioned this pull request Apr 10, 2026
12 tasks
@goodboy goodboy added devx-tooling "developer experience" improvements as provided `tractor.devx` for runtime dependents. the_AIs_are_taking_over slowly conceding to the reality the botz mk us more productive, but we require SC to avoid skynet.. labels Apr 10, 2026
Expand `run-tests` skill `allowed-tools` to cover
the documented pre-flight workflow: `git rev-parse`
for worktree detection, `python --version`, and
`UV_PROJECT_ENVIRONMENT=py* uv sync` for venv
setup. Also dedup `gh api`/`gh pr` entries in
`settings.local.json` and widen `py313` → `py*`
so non-3.13 setups aren't blocked.

Review: PR #440 (copilot-pull-request-reviewer)
#440

(this patch was generated in some part by [`claude-code`][claude-code-gh])
[claude-code-gh]: https://github.com/anthropics/claude-code
@goodboy goodboy merged commit 9f8e9eb into main Apr 10, 2026
4 checks passed
@goodboy goodboy deleted the moar_skillz_squashed branch April 10, 2026 22:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

devx-tooling "developer experience" improvements as provided `tractor.devx` for runtime dependents. the_AIs_are_taking_over slowly conceding to the reality the botz mk us more productive, but we require SC to avoid skynet..

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants