Skip to content

feat(skill-catalog): import-bundle --clean + deterministic lint --slop - #76

Merged
Icaro0310 merged 2 commits into
mainfrom
feat/import-bundle-clean-lint-slop
Oct 28, 2026
Merged

Icaro0310 merged 2 commits into
mainfrom
feat/import-bundle-clean-lint-slop

Conversation

@Icaro0310

Copy link
Copy Markdown
Owner

Scout execution-brief items 10 and 23.

import-bundle --clean (P1): safe replacement semantics — snapshot of the clean scope (store dirs + registry entries) into import-snapshots/ before any mutation, atomic staged swap via os.rename, rollback on any failure/interruption, and --restore SNAPSHOT_DIR recovery path. Approved/active items demoted to quarantined; retired untouched. plan-first like every mutation.

lint --slop (P3): 5 deterministic rules (LLM fingerprints, em-dash separators, sycophancy, not-just-but, filler) each with documented rationale + per-line/per-file slop-allow exceptions; fenced code skipped; findings carry rule-id + line; FAIL→1, --warn-only→0.

Tests: 216 passed, 2 skipped (pre-existing). FP measured on repo's own SKILL.md files: 0 non-emdash hits.
Docs: README + CHANGELOG + llms.txt + STATUS.md.

import-bundle --clean replaces the catalog content for the bundle's
scope instead of merging: pre-clean state (store copies + registry
entries) is snapshotted to skill-catalog/import-snapshots/ first, each
store copy is staged and swapped atomically, and a mid-run failure
rolls back -- fail-closed, never a half-replaced catalog.
import-bundle --restore SNAPSHOT_DIR recovers a snapshot manually
(plan-first). Items still land quarantined; retired items are skipped
and items absent from the bundle are untouched. Adds a same-state
Registry.replace so re-importing an already-quarantined item stays
auditable.

lint --slop adds a deterministic anti-slop pass over item markdown with
five regex rules -- slop-fingerprint, slop-emdash, slop-sycophancy,
slop-not-just-but, slop-filler -- each with a documented rationale and
a shared exceptions mechanism (slop-allow / slop-allow:<rule-id> line
markers, slop-allow-file). Fenced code blocks are skipped. Findings
carry rule id + line refs and exit 1; --warn-only reports WARN and
exits 0.

Generated with [Devin](https://devin.ai) & QA Engineer Icaro Galvao

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Oct 27, 2026
@Icaro0310
Icaro0310 enabled auto-merge (squash) October 27, 2026 16:34
@Icaro0310 Icaro0310 closed this Oct 27, 2026
auto-merge was automatically disabled October 27, 2026 19:15

Pull request was closed

@Icaro0310 Icaro0310 reopened this Oct 27, 2026
@Icaro0310 Icaro0310 closed this Oct 27, 2026
@Icaro0310 Icaro0310 reopened this Oct 27, 2026
@Icaro0310
Icaro0310 enabled auto-merge (squash) October 27, 2026 20:06
@Icaro0310 Icaro0310 closed this Oct 28, 2026
auto-merge was automatically disabled October 28, 2026 08:50

Pull request was closed

@Icaro0310 Icaro0310 reopened this Oct 28, 2026
@github-actions

github-actions Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

AI Code Review Summary

0 finding(s) across 0 reviewed file(s).

Severity Count
🔴 Critical 0
🟠 High 0
🟡 Medium 0
🔵 Low 0

Top issues

No issues found. LGTM ✅

Skipped files

  • Provider error — not reviewed (10): packages/skill-catalog/CHANGELOG.md, packages/skill-catalog/README.md, packages/skill-catalog/STATUS.md, packages/skill-catalog/llms.txt, packages/skill-catalog/src/devin_skill_catalog/bundle.py, packages/skill-catalog/src/devin_skill_catalog/cli.py, packages/skill-catalog/src/devin_skill_catalog/registry.py, packages/skill-catalog/src/devin_skill_catalog/slop.py, packages/skill-catalog/tests/test_bundle_clean.py, packages/skill-catalog/tests/test_slop.py

Token usage: 0 in / 0 out.

Reviewed by: ai-code-reviewer · ollama / qwen2.5-coder:1.5b

@Icaro0310 Icaro0310 closed this Oct 28, 2026
@Icaro0310 Icaro0310 reopened this Oct 28, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Reviewer B (local model qwen2.5-coder:1.5b) — verdict: request_changes

{
  "message": "The provided JSON snippet is a description of a Python script that manages the import of a bundle into a catalog. The script includes functions for cleaning the import process, which involves copying pre-existing store copies and registry entries into a snapshot directory, and then swapping in the new content with `os.rename`. The script also handles recovery in case of failures. The script is designed to ensure that items are not resurrected after a clean import and that the catalog content is replaced with the new bundle's content. The script uses the `devin_skill_catalog` library to interact with the catalog and its components. The script is written in Python 3 and uses the `pathlib` module for file paths. The script is designed to be used in a production environment and is tested with various scenarios to ensure its correctness. The script is also documented with comments and a README file to provide instructions on how to use it. The script is written in a way that is easy to understand and modify, making it suitable for use in a team environment. The script is written in a way that is compatible with different operating systems and Python versions, making it suitable for use in a variety of environments. The script is written in a way that is scalable and maintainable, making it suitable for use in a large-scale environment. The script is written in a way that is secure and reliable, making it suitable for use in a production environment. The script is written in a way that is user-friendly, making it suitable for use in a team environment. The script is written in a way that is easy to understand and modify, making it suitable for use in a team environment. The script is written in a way that is compatible with different operating systems and Python versions, making it suitable for use in a variety of environments. The script is written in a way that is scalable and maintainable, making it suitable for use in a large-scale environment. The script is written in a way

@Icaro0310
Icaro0310 merged commit 6d10720 into main Oct 28, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant