python-skills 1.0.0__tar.gz → 1.0.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.
- {python_skills-1.0.0 → python_skills-1.0.1}/PKG-INFO +1 -1
- {python_skills-1.0.0 → python_skills-1.0.1}/pyproject.toml +1 -1
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/opencode.py +4 -3
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/windsurf.py +4 -3
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/state.py +8 -1
- {python_skills-1.0.0 → python_skills-1.0.1}/.gitignore +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/LICENSE +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/README.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/__init__.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/__main__.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/__init__.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/agent_skills.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/aider_adapter.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/base.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/claude.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/cline.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/codex.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/continue_adapter.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/cursor.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/gemini.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/goose.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/junie.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/kiro.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/roo.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/universal.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/vscode.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/zed.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/cli.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/config.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/detector.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/installer.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/markers.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/skills/__init__.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/skills/loader.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/skills/metadata.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/skills/registry.py +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/advanced_python.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/anti_patterns/index.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/comprehensions.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/control_flow.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/data_structures.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/debugging/common_bugs.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/debugging/inspection_techniques.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/debugging/root_cause.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/engineering/application_logging.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/engineering/cli_apps.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/engineering/configuration.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/engineering/database.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/engineering/dependency_management.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/engineering/http_clients.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/engineering/modules_packages.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/engineering/packaging.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/engineering/project_structure.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/engineering/pyproject_toml.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/engineering/virtual_environments.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/functions.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/generation/async_concurrency.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/generation/error_handling.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/generation/protocols_generics.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/generation/type_hints.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/generation/validation_pipeline.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/generation/workflow.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/oop.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/quality/abstractions.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/quality/comments.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/quality/documentation.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/quality/duplication.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/quality/maintainability.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/quality/naming.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/quality/quality_functions.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/quality/readability.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/quality/type_annotations.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/refactoring/behavior_preservation.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/refactoring/incremental.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/refactoring/interface_stability.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/refactoring/safe_refactoring.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/security/auth_boundaries.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/security/command_injection.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/security/dependency_risks.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/security/file_handling.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/security/input_validation.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/security/path_traversal.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/security/secrets.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/security/sql_injection.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/security/unsafe_deserialization.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/argparse.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/collections.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/datetime.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/functools.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/itertools.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/json.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/logging.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/os_sys.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/pathlib.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/re.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/statistics.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/subprocess.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/testing/async_tests.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/testing/coverage.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/testing/edge_cases.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/testing/fixtures_mocks.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/testing/organization.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/testing/parameterized.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/testing/regression_tests.md +0 -0
- {python_skills-1.0.0 → python_skills-1.0.1}/skills/variables_types.md +0 -0
|
@@ -10,16 +10,17 @@ class OpenCodeAdapter(AgentSkillsAdapter):
|
|
|
10
10
|
|
|
11
11
|
OpenCode discovers skills from:
|
|
12
12
|
- .agents/skills/<name>/SKILL.md (cross-agent standard)
|
|
13
|
-
- .opencode/skills/<name>/SKILL.md (native)
|
|
13
|
+
- .opencode/skills/<name>/SKILL.md (native, fallback)
|
|
14
14
|
- .claude/skills/<name>/SKILL.md (Claude Code compat)
|
|
15
15
|
|
|
16
|
-
We install to .agents/skills/ (shared)
|
|
16
|
+
We install to .agents/skills/ (shared). OpenCode discovers from the
|
|
17
|
+
shared directory natively, so no separate native directory is needed.
|
|
17
18
|
"""
|
|
18
19
|
|
|
19
20
|
target_name = "opencode"
|
|
20
21
|
display_name = "OpenCode"
|
|
21
22
|
agent_skills_dir = ".agents/skills"
|
|
22
|
-
native_skills_dir =
|
|
23
|
+
native_skills_dir = None
|
|
23
24
|
detection_app_command = "opencode"
|
|
24
25
|
detection_project_markers = [".opencode", "opencode.json", "opencode.jsonc"]
|
|
25
26
|
|
|
@@ -10,16 +10,17 @@ class WindsurfAdapter(AgentSkillsAdapter):
|
|
|
10
10
|
|
|
11
11
|
Windsurf discovers skills from:
|
|
12
12
|
- .agents/skills/<name>/SKILL.md (cross-agent standard)
|
|
13
|
-
- .windsurf/skills/<name>/SKILL.md (native)
|
|
13
|
+
- .windsurf/skills/<name>/SKILL.md (native, fallback)
|
|
14
14
|
- .claude/skills/<name>/SKILL.md (Claude Code compat)
|
|
15
15
|
|
|
16
|
-
We install to .agents/skills/ (shared)
|
|
16
|
+
We install to .agents/skills/ (shared). Windsurf discovers from the
|
|
17
|
+
shared directory natively, so no separate native directory is needed.
|
|
17
18
|
"""
|
|
18
19
|
|
|
19
20
|
target_name = "windsurf"
|
|
20
21
|
display_name = "Windsurf"
|
|
21
22
|
agent_skills_dir = ".agents/skills"
|
|
22
|
-
native_skills_dir =
|
|
23
|
+
native_skills_dir = None
|
|
23
24
|
detection_project_markers = [".windsurf", ".devin"]
|
|
24
25
|
|
|
25
26
|
def _get_global_path(self) -> Path:
|
|
@@ -91,7 +91,14 @@ class LockManager:
|
|
|
91
91
|
if self.lock_file.exists():
|
|
92
92
|
try:
|
|
93
93
|
data = json.loads(self.lock_file.read_text(encoding="utf-8"))
|
|
94
|
-
|
|
94
|
+
targets_raw = data.pop("targets", {})
|
|
95
|
+
lock = LockState(**data)
|
|
96
|
+
for name, ts_data in targets_raw.items():
|
|
97
|
+
files_raw = ts_data.pop("files", [])
|
|
98
|
+
ts = TargetState(**ts_data)
|
|
99
|
+
ts.files = [FileRecord(**f) for f in files_raw]
|
|
100
|
+
lock.targets[name] = ts
|
|
101
|
+
self._lock = lock
|
|
95
102
|
return self._lock
|
|
96
103
|
except Exception:
|
|
97
104
|
pass
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|