@ccoalm/ccl-skills 0.18.4 → 0.18.5

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.
@@ -26,11 +26,21 @@ Walk these before you open a pull or merge request, push to one that is already
26
26
  1. Name the commit or packet the last conclusive review covered and compare it with the current candidate: HEAD plus staged, unstaged and untracked implementation files. For a review whose candidate `--base` derived from the whole worktree, the controller records that commit in the worktree's git directory (`ccl-code-review/last-review.json`; a bare `--diff-file` or `--paths` review records nothing), and the plugin's pull-request hook repeats this comparison when you open, ready or merge one; its reminder is this step firing, not a new question.
27
27
  2. Any difference makes the current candidate unreviewed: a fix for a finding of any severity, an added or changed test, a changelog or doc line, a rebase that changed a file the candidate touches. Only the review's own record files (result JSON, disposition notes) are exempt.
28
28
  3. An unreviewed candidate must get the owning gate's renewed review now, run by you: a fresh full run per [manual invocation](manual-invocation-and-prompts.md); the skill-extraction lane runs its own delta pass instead. Pushing it for a human to review does not discharge it, and "awaiting human review" never stands in for the run.
29
- 4. Renewed runs stop at five after the first review; a tracked chain's own five-round ceiling still applies inside it. A P0/P1 still open after the fifth, or a change made after it, is reverted or reported blocked, never reported ready.
29
+ 4. Apply the [review continuation checkpoint](#review-continuation-checkpoint) after five renewed runs or earlier when findings recur without progress. Necessary review continues within the task's authority; unresolved P0/P1 or unreviewed changes still prevent a ready report.
30
30
  5. The report and the pull-request description name each review and the commit it covered. Call HEAD reviewed only when the last conclusive review covered HEAD.
31
31
 
32
32
  Before completion or landing handoff, report the actual diff classification and a concrete reason if review is inapplicable. Support that classification with the change-inspection command and result, including untracked implementation files. Report the actual review outcome and candidate it covers, relevant tests and their results, skips, unresolved findings and remaining restrictions. A failed or missing required review leaves review/completion pending. Review does not grant permission to commit, push, merge, publish or deploy.
33
33
 
34
+ ## Review continuation checkpoint
35
+
36
+ Necessary in-scope review inherits the existing task authority, including review of a fix made after an earlier pass. Five renewed runs trigger a progress checkpoint, not an authorization request. At that checkpoint, and before each later renewed run:
37
+
38
+ 1. Check current scope and any explicit user stop, count, cost or time limit. Honor a host permission denial or unavailable resource through its normal recovery path; task authority never bypasses it. Ask only for a missing decision or authority that the next action actually needs.
39
+ 2. Record what changed, the disposition of the previous findings, and what new evidence the next pass should obtain. When findings recur without progress, change the method or gather different evidence before calling again. Continue available in-scope repair and tests; park only work that needs an unavailable decision or resource.
40
+ 3. Run the necessary review of the changed candidate without requesting permission per pass. Keep the tracked chain's own round ceiling and each invocation's timeout. A terminal chain stays terminal; use the owning lane's documented fresh-review or delta-pass path, and never reset an unchanged candidate's chain merely to obtain zero findings. Record the real pass history; an automatic pass is not a newly human-requested one.
41
+
42
+ The checkpoint waives no review, challenge, evidence or readiness requirement. A missing conclusive pass or unresolved P0/P1 remains pending regardless of how many passes have run. If the current candidate already has valid review and dispositions, reuse them and finish.
43
+
34
44
  ## Review tools
35
45
 
36
46
  Packet-only allows read-only tools over the frozen material. Codex exposes pathless `read_packet` and `search_packet`; the parser checks returned content against the same packet and requires completed calls. Each server read checks the packet hash. Shell execution is disabled by effective capability, and inherited MCP servers are disabled only for this invocation. Unsupported capability falls back without a CLI version requirement. A read-only sandbox alone does not disable commands.
@@ -159,7 +159,7 @@ Turn observed experience into reusable skills without business-specific details.
159
159
  - So the row records, per protected predicate, the removal that was **applied** and observed to turn the suite RED **for the right reason** — a bare non-zero exit does not qualify (a mutant that breaks syntax or fixture setup also exits non-zero and would bank a broken build as proof of sensitivity); the failure must be attributable to the named protected assertion, and attribution is **differential** (the owning assertion passes in the unmutated control and fails under the mutant, with no non-owning assertion failing) rather than a substring match on aggregate output. An unapplied "this mutation would fail it" is a hypothesis. `testing-strategy` owns the encoded form of that walk (route, don't copy) — for a destructive artifact the walk belongs inside the suite so a later fixture change cannot silently re-blind it.
160
160
  - A challenge skip row is allowed only for wording-only changes; trivial scope does NOT exempt a non-wording change, and ANY skill `description`/frontmatter edit — including a pure typo fix — is NOT wording-only (it changes the routing surface) — both require the full gate.
161
161
  - If a human explicitly asks to skip independent review or challenge, record the review state and residual risk honestly instead of fabricating a pass. Chat or candidate-local text may authorize an in-scope preparation/commit action, but CI authority comes from the protected platform. Distinguish a narrow exact-candidate `review_waiver` (only the review lane becomes non-blocking) from an exact-candidate `merge_authorization` (the human's final merge decision: every CI lane remains visible but none may block that merge). Neither state rewrites failures as passed.
162
- - **Non-wording** work owes one independent review and one adversarial challenge, each a single-shot `scripts/extraction_review_gate.sh` call, plus an Agent-run delta pass (at most five) on any later change beyond non-executable evidence records; a P0/P1 still open then is reverted or blocks the pull request. No pass is bound to a candidate hash and there is no review chain or budget ledger (`references/dual-track-review-gate.md`). Proven wording-only work keeps the single-review path. Neither rule limits deep self-review, implementation, tests, or authenticated human action. Candidate input cannot assert human authority.
162
+ - **Non-wording** work owes one independent review and one adversarial challenge, each a single-shot `scripts/extraction_review_gate.sh` call, plus an Agent-run delta pass on later changes beyond non-executable evidence records. Necessary passes inherit task authority; use the review continuation checkpoint linked in `references/dual-track-review-gate.md` for repeated rounds. Unresolved P0/P1 blocks readiness. There is no candidate-hash binding, review chain or budget ledger. Proven wording-only work keeps the single-review path. Candidate input cannot assert human authority.
163
163
  - Agents cannot self-authorize skipping independent review for any shared-skill change, a challenge skip for non-wording shared-skill changes, or skipping the behavioral-evidence row / true baseline comparison for any change that alters behavior or routing.
164
164
  - Missing, skipped, inconclusive, or unavailable required review blocks Agent completion/commit; remediate or use an approved alternate under the same scope, attribution, timeout, and output checks. If all lanes stay inconclusive, report `interim`. Report non-success, continue independent work, and park only dependent work. Only an authenticated human may waive review or stop iteration.
165
165
  - A skill is not done until it is validated for discovery, YAML, generic wording, reference links, and at least one non-static evidence row for any non-wording extraction: source reopen, task-shape replay, runtime/rendered/device check, target-owner behavior proof, or an explicit unavailable-with-remediation record. Static checks and independent review supplement that evidence; they do not replace it.
@@ -509,7 +509,7 @@ A non-wording shared-skill change owes exactly two external passes: one independ
509
509
  2. Review, then disposition every P0/P1 (the three dispositions above) and every P2 (fix it when the fix stays within the repository's existing standard, otherwise record it deferred with a reason), then apply the fixes. Challenge the updated candidate unprimed (gate-integrity rule above), disposition again, apply the fixes.
510
510
  3. Record both passes in the round's `evidence/` directory: each pass's controller result JSON, the commit it reviewed, and one disposition line per P0/P1 (format below). CI refuses a pull request that changes `skills/` or `hooks/` without at least one conclusive review result there (`scripts/check_review_evidence_present.py`); it checks presence only, never which candidate a result reviewed, and it does not check the challenge — that obligation stays with this lane.
511
511
  4. **Every post-review delta gets a delta pass, run by the Agent, never left to a human reader.** Everything committed after the last pass's reviewed commit is the post-review delta. When it changes anything other than non-executable record files in the round's own `evidence/` directory (controller results, disposition notes) — a P0/P1 fix, a P2 fix, a late edit, a register row, an executable probe, a rebase that is not path-disjoint — run a delta pass on it before claiming the round ready. The pull-request description lists each pass and the commit it reviewed, for traceability; nobody is expected to re-review the delta by hand.
512
- 5. **A delta pass reviews only the delta.** Its packet is the delta from the reviewed commit — pass `--base <reviewed commit>`, which binds it to the worktree and records the local receipt the pull-request hook reads — plus, for a fix, the original finding verbatim as an open item, asking for any P0/P1 in that delta — never a fix-claim (gate-integrity rule above). A new P0/P1 in the delta is fixed and gets one more delta pass. After five delta passes a still-open P0/P1 is not a human decision: revert the change that introduced it, or mark the pull request blocked and do not report it ready. Only an exact rollback of that change to a previously accepted state — the base or a version a pass reviewed — with its dependent changes owes no further pass; any other deletion leaves the pull request blocked. A delta pass never re-reviews unchanged content and never voids an earlier pass. Any pass uses the same adversarial framing; a softer prompt after fixes defeats it. P2/P3 findings owe a disposition (step 2), not a pass of their own.
512
+ 5. **A delta pass reviews only the delta.** Its packet is the delta from the reviewed commit — pass `--base <reviewed commit>`, which binds it to the worktree and records the local receipt the pull-request hook reads — plus, for a fix, the original finding verbatim as an open item, asking for any P0/P1 in that delta — never a fix-claim (gate-integrity rule above). A new P0/P1 in the delta is fixed and gets one more delta pass. After five delta passes, or earlier when findings recur without progress, apply the [review continuation checkpoint](../../code-review/references/development-completion.md#review-continuation-checkpoint): necessary passes inherit task authority; explicit user limits and real permission boundaries remain binding. Unresolved P0/P1 or an unreviewed delta still blocks readiness. Only an exact rollback to a previously accepted state — the base or a version a pass reviewed — with its dependent changes owes no further pass; any other deletion owes its delta pass. A delta pass never re-reviews unchanged content and never voids an earlier pass. Any pass uses the same adversarial framing; a softer prompt after fixes defeats it. P2/P3 findings owe a disposition (step 2), not a pass of their own.
513
513
 
514
514
  A rebase owes nothing only when it is path-disjoint: `git diff --name-only <old base> <new base>` shares no path with the candidate's changed files. When the target's new commits touched a file the candidate also touches — with or without a textual conflict — the combination was never reviewed, so the delta pass covers those files.
515
515
 
@@ -94,7 +94,7 @@ For maintainers running a fresh codebase / Figma / doc extraction. Read this fir
94
94
  - Run deterministic checks and implementer self-review first, and record what each proves before invoking review/challenge (this self-review-before-review ordering applies to every non-wording shared-skill change the dual-track table requires review for, not only the rows that look high-risk): `git diff --check` proves whitespace/conflict-marker hygiene only; validators prove schema/link/routing invariants; leakage/sanitization scans prove only their configured patterns; scope checks must name the changed files or expected file set; the self-review row is conclusive only when each required field is non-empty (acceptance criteria, changed-file scope, edge/failure paths, known residual risks) and the changed-file scope equals the candidate diff's changed-file set, or explicitly explains any excluded generated/irrelevant file. Persist it before the review/challenge run in a fresh, non-overwritten task-evidence path outside the candidate diff, pass that exact file as the gate's review plan, and retain the gate result that binds its profile hash; do not edit the candidate merely to record self-review or review outcome, because that creates self-referential candidate churn. A candidate-local row is appropriate only when the row itself is a substantive deliverable under review. A plain in-place-editable MR description or scratch log is not ordering proof unless its edit history is retrievable and checked; a backfilled row is invalid and forces a rerun. If the candidate diff changes after the row is saved — a file added/removed OR the content of any listed file materially changed — refresh the row; a changed candidate does not by itself owe another external pass (the extraction review lane in `references/dual-track-review-gate.md` decides which passes are owed). Changing only the external self-review record refreshes the profile binding; it does not by itself invalidate implementation tests or the candidate packet. A missing field, "ok" placeholder, mismatched scope, or unprovable ordering makes the row inconclusive. Do not spend LLM review rounds on issues a script or implementer-side checklist can decide. If the independent pass is the first place basic scope, contract, privacy, or test issues surface, apply those findings to the diff, close the self-review gap, and rerun the deterministic gates before rerunning review/challenge; the process-defect repair is in addition to resolving the findings, not a way to discard or downgrade them.
95
95
  - Review pass: persist the complete self-review row and encode it in the review plan. For a **non-wording** lane, resolve the repository-owned `scripts/extraction_review_gate.sh` once per pass; never substitute the generic controller, scan writable plugin roots, or pass chain or budget options (the wrapper refuses them). For a strictly proven **wording-only** lane, use the generic `code-review` proof-bound single-review recipe in `code-review/references/staged-review-contract.md` and record `challenge: not-required`; require its controller-derived wording scope plus the independent `wording_only_boundary` confirmation. The gate, not this page, decides whether the wording-only single review is legal, and it may still demand the review-plus-challenge pair. Take all controller options from that runnable recipe, supplying the actual stage and exact candidate rather than an example default. Read the packet-composition rules in `references/dual-track-review-gate.md` first. Require conclusive JSON, selected-client attribution, packet/profile binding, family exclusion, and wrapper runtime evidence. When the host returns a live execution handle (`session_id`, `cell_id`, or equivalent), keep polling that exact handle until terminal exit; empty current output is progress, not a verdict, and no replacement/fallback reviewer may start while the original process is live. The result row records handle type, an opaque host transcript/tool-call reference and terminal exit status. If the handle is lost, the lane is infrastructure-inconclusive/manual-review-required and no replacement or fallback may be started or credited; process-tree and wrapper artifacts are diagnostic only. This is a procedural host obligation because the inner gate cannot observe the outer handle. Never copy a credential-like raw handle into shared evidence. `findings` is not pass; inconclusive, malformed, or free-form output stays interim. Do not add a separate behavior probe.
96
96
  - Challenge pass: for a non-wording lane, invoke `scripts/extraction_review_gate.sh --mode challenge` separately, with a focus, on the candidate after the review's fixes are applied (a local checkpoint commit is allowed, see SKILL.md). It is not bound to the review's candidate. Preserve a separate result row with the same binding, egress, attribution and conclusive checks. Review never satisfies challenge; missing or inconclusive required challenge keeps extraction interim. A wording-only lane has no challenge pass.
97
- - Treat review/challenge as batch-level gates over the landing candidate, not as a per-bullet or per-line edit loop. Apply all findings from a pass. Every commit after the last pass that changes more than non-executable record files in the round's evidence directory (register rows and scripts included) owes an Agent-run delta pass on that delta only (at most five; a P0/P1 still open after that is reverted or blocks the pull request). The pull-request description lists each pass and the commit it reviewed (`references/dual-track-review-gate.md`, extraction review lane).
97
+ - Treat review/challenge as batch-level gates over the landing candidate, not as a per-bullet or per-line edit loop. Apply all findings from a pass. Every commit after the last pass that changes more than non-executable record files in the round's evidence directory (register rows and scripts included) owes an Agent-run delta pass on that delta only. Necessary passes inherit task authority; repeated rounds use the review continuation checkpoint linked from `references/dual-track-review-gate.md`. Unresolved P0/P1 or an unreviewed delta blocks readiness. The pull-request description lists each pass and the commit it reviewed.
98
98
  - Test lane: run the full lane once before the review; after it, a fix confined to one suite reruns that suite plus `check-ccl-skills.sh`, and a controller, contract or shared-gate fix reruns the full lane.
99
99
  - Skipping a required challenge = work can only land as interim, not complete.
100
100
 
@@ -709,3 +709,5 @@ The pending classification above is superseded by the executed source comparison
709
709
  | Ordinary candidates cannot select extraction review or challenge | `skill-extraction-workflow` | result-class: failure; behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: command:skills/skill-extraction-workflow/scripts/test_extraction_review_gate.sh | updated | Owner key `skill-extraction-workflow/SKILL.md`. A real-controller negative fixture fails before the ownership repair and passes afterward for both extraction modes, while ordinary staged review still reaches reviewer selection. The declared extraction owner in the fixture plan cannot substitute for candidate-derived evidence. |
710
710
  | Blocker and waiting-status handoffs do not request continuation | `product-rd-workflow` | result-class: failure; behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/references/pre-final-continuation-gate.md#Do not request continuation for | updated | Owner key `product-rd-workflow/SKILL.md`. Native-shaped fixtures expose the extra reminder for a concrete blocked handoff or a none marker with a waiting explanation. These statuses now remain non-actionable; a separate action marker and action words that merely start with none still receive the bounded recheck. |
711
711
  | Long-history Stop checks suppress repeated incomplete notices and recover positive current-context evidence | `skill-extraction-workflow` / `product-rd-workflow` / `testing-strategy` | result-class: failure; behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: command:hooks/skill-extraction-gate-stop.sh | updated | `specs/146-bounded-hook-history/plan.md` binds repeated overflow, post-compaction recovery and early size-rejection cases. The strict whole-session audit remains unchanged; complete current-context evidence may prove invocation or handoff eligibility, while absence remains unknown. Atomic notice claims are isolated by session, actor and transcript identity and never suppress checks. Existing owner entrypoints remain unchanged; the executable prevention is in the shared hook helper and its subprocess regressions. |
712
+ | Necessary renewed review retains task authority across a progress checkpoint | `code-review` | result-class: failure; behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/code-review/references/development-completion.md#Run the necessary review of the changed candidate | updated | Owner key `code-review/SKILL.md` remains unchanged and already routes completion to this reference. Consolidation: merged task authority and repeated-review handling into the existing completion checkpoint. The former task-wide five-run stop is replaced by a progress check; explicit user limits, host permissions, individual chain ceilings, invocation timeouts and current-candidate review remain required. The extraction-policy regression fails on the prior policy and checks the canonical checkpoint and its boundaries. |
713
+ | Extraction delta review uses the same continuation decision as ordinary review | `skill-extraction-workflow` | result-class: failure; behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: command:skills/skill-extraction-workflow/scripts/test_extraction_review_gate.sh | updated | `skill-extraction-workflow/SKILL.md`, `references/dual-track-review-gate.md` and `references/extraction-quickstart.md` route repeated passes to the code-review checkpoint. Independent review plus challenge, post-review delta coverage, finding dispositions and readiness requirements survive. This row supersedes the historical five-pass ceiling; its immutable locator is retired through the exact-row digest exception in `scripts/register-firing-path-resolution.rb`. `specs/147-review-continuation/plan.md` defines the migration and decision table. Tests reject the retired stop in operative carriers. Product workflow, testing and release owners retain their existing task-authority and verification rules. |
@@ -88,6 +88,8 @@ end
88
88
  # those exact rows (one digest, or an array when several rows cited the retired
89
89
  # locator); a new row cannot inherit it by reusing the locator.
90
90
  EXEMPT = {
91
+ "file:skills/skill-extraction-workflow/references/dual-track-review-gate.md#After five delta passes a still-open P0/P1" =>
92
+ "147 replaces the task-wide review stop with a progress checkpoint; the superseding register row preserves required delta review",
91
93
  "file:skills/product-ui-ux-design/references/external-ui-ux-quality-benchmarks.md#Disabled semantics are real, not painted" =>
92
94
  "065 replaced the combined platform walkthrough with an authority-classed claim ledger and executable delivery contract",
93
95
  "file:skills/product-ui-ux-design/references/external-ui-ux-quality-benchmarks.md#predictive-back geometry routes to" =>
@@ -481,6 +483,8 @@ end
481
483
  exempt_uses = {}
482
484
  EXEMPT_USE_ALLOWANCE = 1
483
485
  EXEMPT_ROW_DIGESTS = {
486
+ "file:skills/skill-extraction-workflow/references/dual-track-review-gate.md#After five delta passes a still-open P0/P1" =>
487
+ "44d4bf30abb863fd031f4bc47b12d1a3685062514ca3e344481f7faa1598bc5e",
484
488
  "file:skills/product-ui-ux-design/references/external-ui-ux-quality-benchmarks.md#Disabled semantics are real, not painted" =>
485
489
  "729839dab2f900b92a3f7e866eb6602eb5261c112d39973d9eb470a797f8ca41",
486
490
  "file:skills/product-ui-ux-design/references/external-ui-ux-quality-benchmarks.md#predictive-back geometry routes to" =>
@@ -244,8 +244,30 @@ assert re.search(r"[Ww]ording-only.{0,500}(?:single|one)[- ](?:round|review|pass
244
244
  docs["quickstart"], re.DOTALL), "quickstart lost the wording-only single-review exception"
245
245
  assert "--challenge-budget" not in docs["quickstart"], "quickstart must not hand callers the budget flag"
246
246
  dual = docs["dual-track"]
247
- for pinned in ("post-review delta", "Every post-review delta gets a delta pass", "After five delta passes", "never left to a human reader"):
247
+ for pinned in ("post-review delta", "Every post-review delta gets a delta pass", "never left to a human reader"):
248
248
  assert pinned in dual, f"dual-track lost '{pinned}'"
249
+ # The sixth necessary review inherits task authority. A convergence checkpoint
250
+ # must not become a fresh permission request, or override an explicit user limit.
251
+ completion = (root / "skills/code-review/references/development-completion.md").read_text(encoding="utf-8")
252
+ checkpoint = "#review-continuation-checkpoint"
253
+ assert checkpoint in dual, "extraction must use the canonical review continuation checkpoint"
254
+ assert "Unresolved P0/P1 or an unreviewed delta still blocks readiness" in dual, "extraction must keep unresolved findings and unreviewed changes pending"
255
+ assert "review continuation checkpoint" in docs["SKILL"], "entrypoint must route the continuation decision"
256
+ assert "review continuation checkpoint" in docs["quickstart"], "quickstart must route the continuation decision"
257
+ for label, text in {"completion": completion, **docs}.items():
258
+ for retired in ("Renewed runs stop at five", "After five delta passes a still-open", "delta pass (at most five)", "delta only (at most five"):
259
+ assert retired not in text, f"{label} restores a task-wide review permission ceiling"
260
+ for obligation in (
261
+ "Five renewed runs trigger a progress checkpoint, not an authorization request",
262
+ "Necessary in-scope review inherits the existing task authority",
263
+ "explicit user stop, count, cost or time limit",
264
+ "host permission denial",
265
+ "change the method or gather different evidence",
266
+ "tracked chain's own round ceiling",
267
+ "never reset an unchanged candidate's chain merely to obtain zero findings",
268
+ "A missing conclusive pass or unresolved P0/P1 remains pending",
269
+ ):
270
+ assert obligation in completion, f"review continuation lost '{obligation}'"
249
271
  wording_only = (root / "skills/code-review/references/wording-only-review.md").read_text(encoding="utf-8")
250
272
  assert "--wording-only-proof-file" in wording_only
251
273
  assert "--challenge-budget 0" in wording_only
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schema": 1,
3
3
  "npmPackage": "@ccoalm/ccl-skills",
4
- "version": "0.18.4",
5
- "sourceCommit": "c2455b6c9bde93b197c80139c6fa478e949a249c",
4
+ "version": "0.18.5",
5
+ "sourceCommit": "7369e5853e6e9896314fa669bd5e0f216bbaaa88",
6
6
  "sourceState": "clean",
7
7
  "files": [
8
8
  {
@@ -347,7 +347,7 @@
347
347
  },
348
348
  {
349
349
  "path": "marketplace/plugins/ccl-skills/skills/code-review/references/development-completion.md",
350
- "sha256": "e1c0ed061a62f3c7d1bb54bb6b4a9ee48ced9da069a7c32e35b3bc706c1576c7",
350
+ "sha256": "e4a0bfc652d32ef2f3cc937274c7a66ee58e78e7658d2ad32af74338ab4b02f5",
351
351
  "mode": 420
352
352
  },
353
353
  {
@@ -2102,7 +2102,7 @@
2102
2102
  },
2103
2103
  {
2104
2104
  "path": "marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/dual-track-review-gate.md",
2105
- "sha256": "129106a4e47a59fcce423fd58c75490e3bcc0faab599d15394afce8b70f80222",
2105
+ "sha256": "fbdc6975fcb4ac9aca32e14e0e77f6666b39d6e5491f234760218c1bc83614b6",
2106
2106
  "mode": 420
2107
2107
  },
2108
2108
  {
@@ -2132,7 +2132,7 @@
2132
2132
  },
2133
2133
  {
2134
2134
  "path": "marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/extraction-quickstart.md",
2135
- "sha256": "80241f2b188aa129bb1d008b22702ec8b1835f4c0f7c5b65c235ad41a9f04629",
2135
+ "sha256": "6e43aa5cb09f975f2258b1f62abd3c23d1e10a7ad287ff6cd5dbfb0e8e1c5466",
2136
2136
  "mode": 420
2137
2137
  },
2138
2138
  {
@@ -2207,7 +2207,7 @@
2207
2207
  },
2208
2208
  {
2209
2209
  "path": "marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/source-register.md",
2210
- "sha256": "948afdd0f0a84ce0cdc8a451e6833810a33f970658dda0ce67301c25ba614181",
2210
+ "sha256": "1e7ed0731f7384cb09af9eca420c6f374078c0494a9c945e6c230ac7459be305",
2211
2211
  "mode": 420
2212
2212
  },
2213
2213
  {
@@ -2347,7 +2347,7 @@
2347
2347
  },
2348
2348
  {
2349
2349
  "path": "marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/register-firing-path-resolution.rb",
2350
- "sha256": "09683a290e63e6d52782eb02368458c8a39b078367eb446d29ce6cd7f05c4e7c",
2350
+ "sha256": "93045a535caad9957284f543fada132f56187debfe306fc2868ad05725b05379",
2351
2351
  "mode": 493
2352
2352
  },
2353
2353
  {
@@ -2497,7 +2497,7 @@
2497
2497
  },
2498
2498
  {
2499
2499
  "path": "marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_extraction_review_gate.sh",
2500
- "sha256": "0f474ac1861a1fdd8bf36c2c955c69f127b77ed1e5bd460b35d3d73290c1d15f",
2500
+ "sha256": "3d736839af868e0d3f168a93e87cdcf04383cd8daa18f5591cf434111409e543",
2501
2501
  "mode": 493
2502
2502
  },
2503
2503
  {
@@ -2647,7 +2647,7 @@
2647
2647
  },
2648
2648
  {
2649
2649
  "path": "marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/SKILL.md",
2650
- "sha256": "68bc84034b6eb0f42a9f570dfc914f05c600cc287fc524eebdf3cd68d90568ec",
2650
+ "sha256": "e1e06ac222b6bf4f5d8464e93fca32247d42381e5304459dfc8610006956cfc7",
2651
2651
  "mode": 420
2652
2652
  },
2653
2653
  {
@@ -3518,5 +3518,5 @@
3518
3518
  "mode": 420
3519
3519
  }
3520
3520
  ],
3521
- "snapshotHash": "6fc5965309e0fb84b2392f6c57e9eeafa87d640f213dd32a0383d1af7ccaebe9"
3521
+ "snapshotHash": "2992974733d87fedd4b0ab3a160723a929b20dfe29c859530c33449aed3a2a28"
3522
3522
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ccoalm/ccl-skills",
3
- "version": "0.18.4",
3
+ "version": "0.18.5",
4
4
  "description": "Reusable workflows that help coding agents plan, build, test, review, and release software — for Claude Code, Codex, and OpenCode",
5
5
  "keywords": ["skills", "agent-skills", "claude", "claude-code", "codex", "opencode", "agent", "ai", "ai-agents", "cli", "anthropic", "developer-tools"],
6
6
  "type": "module",