devstuff 1.14.0__tar.gz → 1.14.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {devstuff-1.14.0 → devstuff-1.14.1}/CHANGELOG.md +6 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/PKG-INFO +1 -1
- {devstuff-1.14.0 → devstuff-1.14.1}/pyproject.toml +1 -1
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/commands/skills_cmd.py +28 -1
- {devstuff-1.14.0 → devstuff-1.14.1}/uv.lock +1 -1
- {devstuff-1.14.0 → devstuff-1.14.1}/.claude/skills/run-stuff/SKILL.md +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/.claude/skills/run-stuff/smoke.sh +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/.github/workflows/bump.yml +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/.github/workflows/ci.yml +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/.github/workflows/publish.yml +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/.github/workflows/test-installs.yml +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/.gitignore +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/CLAUDE.md +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/README.md +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/dev/Dockerfile +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/dev/Dockerfile.ci +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/dev/Makefile +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/dev/docker-compose.yml +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/dev-setup +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/install.sh +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/__init__.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/__main__.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/base.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/catalog.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/cli.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/commands/__init__.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/commands/add_cmd.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/commands/catalog_cmd.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/commands/delete_cmd.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/commands/docs_cmd.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/commands/functions_cmd.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/commands/help_cmd.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/commands/install_cmd.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/commands/list_cmd.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/commands/remove_cmd.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/commands/run_cmd.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/commands/update_cmd.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/function_runner.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/functions.schema.json +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/functions.yaml +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/functions_catalog.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/functions_registry.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/generic.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/registry.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/tools.yaml +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/src/dev_setup/ui.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/tests/__init__.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/tests/integration/__init__.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/tests/integration/conftest.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/tests/integration/test_tools.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/tests/test_catalog.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/tests/test_functions.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/tests/test_generic.py +0 -0
- {devstuff-1.14.0 → devstuff-1.14.1}/tests/test_registry.py +0 -0
|
@@ -168,8 +168,34 @@ def _to_ssh_url(repo: str) -> str:
|
|
|
168
168
|
return f"git@github.com:{_owner_repo(repo)}.git"
|
|
169
169
|
|
|
170
170
|
|
|
171
|
+
def _find_skill_dirs(root: Path) -> list[Path]:
|
|
172
|
+
"""Recursively find directories marked as skills by a SKILL.md file.
|
|
173
|
+
|
|
174
|
+
Does not descend into a directory once it's identified as a skill, since
|
|
175
|
+
a skill's own subdirectories (scripts/, references/) aren't skills.
|
|
176
|
+
"""
|
|
177
|
+
found: list[Path] = []
|
|
178
|
+
|
|
179
|
+
def _walk(d: Path) -> None:
|
|
180
|
+
if d.name == ".git":
|
|
181
|
+
return
|
|
182
|
+
if (d / "SKILL.md").is_file():
|
|
183
|
+
found.append(d)
|
|
184
|
+
return
|
|
185
|
+
for child in d.iterdir():
|
|
186
|
+
if child.is_dir():
|
|
187
|
+
_walk(child)
|
|
188
|
+
|
|
189
|
+
_walk(root)
|
|
190
|
+
return sorted(found)
|
|
191
|
+
|
|
192
|
+
|
|
171
193
|
def _discover_skills(repo_dir: Path, repo: str) -> list[Path]:
|
|
172
194
|
"""Return the list of skill directories found in a cloned repo."""
|
|
195
|
+
by_marker = _find_skill_dirs(repo_dir)
|
|
196
|
+
if by_marker:
|
|
197
|
+
return by_marker
|
|
198
|
+
|
|
173
199
|
skills_root = repo_dir / "skills"
|
|
174
200
|
if skills_root.is_dir():
|
|
175
201
|
return sorted(
|
|
@@ -177,7 +203,8 @@ def _discover_skills(repo_dir: Path, repo: str) -> list[Path]:
|
|
|
177
203
|
if p.is_dir() and not p.name.startswith(".")
|
|
178
204
|
)
|
|
179
205
|
|
|
180
|
-
# No skills/ subdir — if the repo root looks like a
|
|
206
|
+
# No SKILL.md markers or skills/ subdir — if the repo root looks like a
|
|
207
|
+
# single skill, use it.
|
|
181
208
|
has_content = any(
|
|
182
209
|
p.name not in (".git",) for p in repo_dir.iterdir()
|
|
183
210
|
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|