diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index f834a95..ffb6579 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -8,6 +8,7 @@ on: - ".claude-plugin/marketplace.json" - ".github/workflows/validate.yml" - "plugins/**" + - "scripts/**" # Cancel superseded runs on the same PR; never cancel default-branch pushes. concurrency: @@ -95,110 +96,33 @@ jobs: steps: - uses: actions/checkout@v7 + - uses: actions/setup-python@v7 + with: + python-version: '3.11' + + - name: Install audit validation dependencies + run: python3 -m pip install -r scripts/requirements-audit.txt + - name: Validate in-repo plugin structure + run: python3 scripts/validate_plugins.py + + - name: Test audit tooling and hook regressions + run: python3 -m unittest discover -s scripts -p 'test_*.py' + + - uses: actions/setup-node@v7 + with: + node-version: '22' + + - name: Install official Claude plugin validator + run: npm install -g @anthropic-ai/claude-code@2.1.258 + + - name: Validate plugins with the target host + env: + CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: '1' run: | - python3 - <<'PY' - import json, os, re, stat, sys - - errors = [] - plugin_dirs = sorted( - d for d in (os.path.join("plugins", n) for n in os.listdir("plugins")) - if os.path.isdir(d) - ) - if not plugin_dirs: - sys.exit("FAIL: no plugin directories under plugins/") - - for pdir in plugin_dirs: - tag = os.path.basename(pdir) - mpath = os.path.join(pdir, ".claude-plugin", "plugin.json") - try: - with open(mpath) as f: - manifest = json.load(f) - except FileNotFoundError: - errors.append(f"{tag}: missing {mpath}") - continue - except json.JSONDecodeError as e: - errors.append(f"{tag}: {mpath} invalid JSON — {e}") - continue - - name = manifest.get("name", "") - if not re.fullmatch(r"[a-z0-9-]+", name): - errors.append(f"{tag}: plugin.json 'name' must be kebab-case, got {name!r}") - if not re.fullmatch(r"\d+\.\d+\.\d+", manifest.get("version", "")): - errors.append(f"{tag}: plugin.json 'version' must be semver, got {manifest.get('version')!r}") - if not manifest.get("description"): - errors.append(f"{tag}: plugin.json 'description' is empty") - - hooks_ref = manifest.get("hooks") - hooks_path = None - if isinstance(hooks_ref, str): - hooks_path = os.path.normpath(os.path.join(pdir, hooks_ref)) - if not os.path.isfile(hooks_path): - errors.append(f"{tag}: plugin.json 'hooks' points at missing file {hooks_ref}") - hooks_path = None - elif os.path.isfile(os.path.join(pdir, "hooks", "hooks.json")): - hooks_path = os.path.join(pdir, "hooks", "hooks.json") - - if hooks_path: - try: - with open(hooks_path) as f: - hooks_cfg = json.load(f) - except json.JSONDecodeError as e: - errors.append(f"{tag}: {hooks_path} invalid JSON — {e}") - hooks_cfg = {} - events = hooks_cfg.get("hooks") - if not isinstance(events, dict) or not events: - errors.append(f"{tag}: {hooks_path} must have a non-empty top-level 'hooks' object") - else: - for event, matchers in events.items(): - if not isinstance(matchers, list): - errors.append(f"{tag}: hooks.{event} must be an array") - continue - for m in matchers: - for h in m.get("hooks", []): - if h.get("type") != "command": - continue - cmd = h.get("command", "") - for rel in re.findall(r"\$\{CLAUDE_PLUGIN_ROOT\}\"?(/[^\s\"']+)", cmd): - script = os.path.normpath(pdir + rel) - if not os.path.isfile(script): - errors.append(f"{tag}: hook command references missing file {rel}") - elif not os.stat(script).st_mode & stat.S_IXUSR: - errors.append(f"{tag}: hook script {rel} is not executable (chmod +x)") - - skills_dir = os.path.join(pdir, "skills") - if os.path.isdir(skills_dir): - for sname in sorted(os.listdir(skills_dir)): - spath = os.path.join(skills_dir, sname, "SKILL.md") - if not os.path.isdir(os.path.join(skills_dir, sname)): - continue - if not os.path.isfile(spath): - errors.append(f"{tag}: skills/{sname}/ has no SKILL.md") - continue - with open(spath) as f: - text = f.read() - fm = re.match(r"\A---\n(.*?)\n---\n", text, re.DOTALL) - if not fm: - errors.append(f"{tag}: skills/{sname}/SKILL.md missing frontmatter block") - continue - for field in ("name", "description"): - if not re.search(rf"^{field}:\s*\S", fm.group(1), re.MULTILINE): - errors.append(f"{tag}: skills/{sname}/SKILL.md frontmatter missing '{field}'") - - with open(".claude-plugin/marketplace.json") as f: - mp = json.load(f) - for entry in mp.get("plugins", []): - src = entry.get("source") - if isinstance(src, str) and not os.path.isdir(src): - errors.append(f"catalog: {entry.get('name')} relative source {src} does not exist") - - if errors: - print("plugin validation FAILED:") - for e in errors: - print(f" - {e}") - sys.exit(1) - print(f"OK: {len(plugin_dirs)} in-repo plugin(s) valid") - PY + for plugin in plugins/*; do + claude plugin validate "$plugin" + done - name: Shellcheck hook scripts run: | diff --git a/README.md b/README.md index 9287c1f..f7f6f81 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ ranked, `file:line`-cited findings and leaves fixes to you. | `/perf-audit` | Budgets declared vs enforced, sizes vs stated limits, shipped-asset hygiene | | `/devops-audit` | CI/CD + deploy configs: action pinning, injection, secret handling, release/migration safety, local-vs-CI gate drift | | `/audit-fix` | Applies an audit report: mechanical fixes with exact-match edits, re-verified by the report's own methods; decisions stay decisions | -| `/plugin-release` | Cuts an in-repo plugin release: semver bump, three-surface description sync, JSON validation, conventional commit; --dry-run prints the diff | +| `/plugin-release` | Cuts an in-repo plugin release: semver bump, three-surface description sync, JSON validation, conventional commit; --dry-run previews the diff from a temporary copy and leaves the tree untouched | | `/skill-validate` | Blind-agent validation harness: pinned ground truth, reproduction/discrimination/fidelity scoring | | `/adr` | Architecture Decision Records, numbered and templated from the repo's own conventions | | `/pr-description` | PR descriptions from the branch diff, template-aware | diff --git a/docs/MAINTAINING.md b/docs/MAINTAINING.md index 5c48f07..a54bdf5 100644 --- a/docs/MAINTAINING.md +++ b/docs/MAINTAINING.md @@ -109,7 +109,7 @@ absence produced a real, verified bug — none are style preferences. miss, and an unrelated directory. Zero blank outputs, zero stderr leaks. 3. **Descriptions carry trigger phrases, not just capability summaries** — skills - undertrigger by default. Name the stack when the skill is stack-specific, so it + need positive and negative discovery tests on the supported host/model. Name the stack when the skill is stack-specific, so it doesn't fire (or collide with a sibling) in the wrong repo. 4. **Audit skills are assessment-only.** They report ranked findings cited `file:line`, diff --git a/docs/SKILL_AUDITS.md b/docs/SKILL_AUDITS.md new file mode 100644 index 0000000..162d408 --- /dev/null +++ b/docs/SKILL_AUDITS.md @@ -0,0 +1,81 @@ +# Skill audits in Ops + +The first owned-skill audit is [2026-09-05](audits/2026-09-05/REPORT.md). +Its JSON record defines the rubric, scope, findings, source hashes, and per-entity +scores. The Markdown report is the readable companion. Scoring is a reviewed +judgment, not an automated lint score or a measured model success rate. + +The post-fix verification, run against the release commits that closed all eleven +findings, is [2026-09-05-post-fix](audits/2026-09-05-post-fix/REPORT.md). A +subsequent complete audit like this one clears resolved findings in ops by sending +an empty findings summary at severity 0 for every entity it re-reviews. + +## Publish a reviewed audit + +Generate and inspect the payload first: + +```sh +python3 scripts/publish_skill_audit.py docs/audits/2026-09-05/audit.json \ + --output /tmp/skill-audit-payload.json +``` + +Set `OPS_URL` to the deployment URL and supply `OPS_INGEST_TOKEN` through your +secret manager, then submit the same reviewed record: + +```sh +python3 scripts/publish_skill_audit.py docs/audits/2026-09-05/audit.json --publish +``` + +For 1Password CLI, a local env file can contain the secret reference +`OPS_INGEST_TOKEN=op://Personal/OPS_INGEST_TOKEN/credential`; use that file with +`op run --env-file -- python3 scripts/publish_skill_audit.py ... --publish`. +Never put the resolved token in a report, command argument, or committed file. +The publisher refuses HTTP and redirects, uses a 30-second timeout, and verifies +the response counts. It never prints the token or server error body. + +No recurring audit job is installed. Run and review audits explicitly; publishing +does not run skill instructions or alter the audited packages. + +## Signal contract + +All five metrics are state snapshots. Each record is associated with the existing +`skill::` or `plugin:clownware/` inventory ID: + +| Metric | Meaning | +|---|---| +| `skill_audit.review_score` | Review index, 0–100; never a capability percentage | +| `skill_audit.findings` | Full finding summary and count; maximum finding severity drives triage | +| `skill_audit.provenance` | Run, rubric, reviewer, source revision, content hash, and coverage | +| `skill_audit.behavior` | Explicit description of tested and untested behavior | +| `skill_audit.portability` | Cross-host validation status and outstanding adapter review | + +Do not mark absent behavioral tests as zero failures or 100% passed. An unknown +status carries no numeric success value. Plugin packaging scores and average skill +scores answer different questions and must remain separate. + +The dedupe key combines run ID and the full report hash. An exact retry is +idempotent; changed evidence becomes a new record. Preserve observation time on +retries. A subsequent complete audit sends an empty findings summary at severity +0 for resolved entities. Do not use a partial audit to clear unreviewed findings. + +The publisher omits entity metadata because the inventory poller owns it. Source +revision and hash are stored in the provenance signal instead. No dashboard +deployment or schema migration is required; `skill_audit` appears as a findings +domain. `/health` continues to describe pollers, not skill effectiveness. + +## Repeat the review + +1. Pin the source revision and content hash before reviewing. Inventory installed + copies separately; local source versions do not prove release availability. +2. Read every entrypoint in scope, parse real YAML, run the host plugin validator, + and inspect references and executable dependencies relevant to the task. +3. Execute reviewed probes in empty, matching, and unrelated contexts. Check their + meaning as well as exit status. Never automatically execute arbitrary Markdown. +4. Record findings with exact locations, reproduction evidence, and proposed fixes. +5. Use isolated blind fixtures for behavioral samples. Record host/model identity, + artifact criteria, tool availability, and any baseline comparison. Never claim + broad compatibility from one successful sample. +6. Review the complete JSON record and generated payload, publish, and retain the + server acknowledgement beside the report. + +Validate the publisher with `python3 -m unittest discover -s scripts -p 'test_*.py'`. diff --git a/docs/audits/2026-09-05-post-fix/REPORT.md b/docs/audits/2026-09-05-post-fix/REPORT.md new file mode 100644 index 0000000..aaa9f43 --- /dev/null +++ b/docs/audits/2026-09-05-post-fix/REPORT.md @@ -0,0 +1,100 @@ +# Owned skill and plugin audit — 2026-09-05 post-fix verification + +Run `owned-skills-2026-09-05-post-fix`, baseline `owned-skills-2026-09-05`. Same rubric (`static-review-v1`), same 39 entities. Every baseline finding was fixed and re-verified; no finding is carried forward. Scores remain static review scores, not behavioral success rates. + +Source revisions: clownware/plugins `b189084cb739` (branch `audit/owned-skills-2026-09-05`, unpushed); product-dev `bff7e06933ac` (branch `fix/ideation-first-override`, unpushed). + +## Verification + +| Check | Result | +|---|---| +| Pre-fetch probes (bash + zsh × empty, marketplace-repo, unrelated) | 642/642 exit 0, empty stderr, non-empty stdout (107 commands) | +| `claude plugin validate` | 6/6 plugins pass (baseline 5/6) | +| Frontmatter parsed with PyYAML | 33/33 skills | +| `scripts/validate_plugins.py` + regression tests | OK; 8/8 tests | +| Reproductions re-executed | guard command forms, astro/templ surface probe, cargo fixture — see `reproductions.json` | +| Blind behavioral sample | not repeated | + +bash -c and zsh -f -c in empty, marketplace-repo, and unrelated contexts with stdin=/dev/null. Four backtick prose fragments excluded by inspection (skill-audit:48, rust test-scaffold:32). Exit/noise checks do not establish semantic correctness. + +## Plugin scores + +| Plugin | Version | Score | Baseline | Mean skill score | +|---|---|---|---|---| +| clownware-astro-tools | 0.5.2 | 100 | 100 | 100.0 | +| clownware-code-tools | 0.15.3 | 100 | 70 | 100.0 | +| clownware-go-tools | 0.3.3 | 100 | 100 | 100.0 | +| pezza-design-system | 0.5.3 | 100 | 100 | 100.0 | +| clownware-rust-tools | 0.1.2 | 100 | 100 | 100.0 | +| product-dev | 0.5.0 | 100 | 100 | 100.0 | + +Plugin-level `sha256` uses a documented tracked-file digest (see `sha256_method` in `audit.json`); the baseline plugin hash method was not recorded, so plugin hashes are not comparable across the two runs. Skill hashes are file digests in both runs. + +## Skill scorecard + +| Skill | Score | Baseline | Baseline findings | +|---|---|---|---| +| clownware-astro-tools:astro-pr-description | 100 | 100 | — | +| clownware-astro-tools:component-scaffold | 100 | 90 | F07 | +| clownware-astro-tools:perf-budget-check | 100 | 90 | F08 | +| clownware-code-tools:a11y-audit | 100 | 90 | F04 | +| clownware-code-tools:adr | 100 | 100 | — | +| clownware-code-tools:arch-audit | 100 | 100 | — | +| clownware-code-tools:audit-fix | 100 | 100 | — | +| clownware-code-tools:deps-audit | 100 | 100 | — | +| clownware-code-tools:design-audit | 100 | 100 | — | +| clownware-code-tools:devops-audit | 100 | 100 | — | +| clownware-code-tools:githits-research | 100 | 80 | F01 | +| clownware-code-tools:perf-audit | 100 | 100 | — | +| clownware-code-tools:plugin-release | 100 | 80 | F02 | +| clownware-code-tools:pr-description | 100 | 100 | — | +| clownware-code-tools:root-cause-debug | 100 | 100 | — | +| clownware-code-tools:security-audit | 100 | 100 | — | +| clownware-code-tools:skill-audit | 100 | 90 | F09 | +| clownware-code-tools:skill-validate | 100 | 100 | — | +| clownware-code-tools:test-audit | 100 | 100 | — | +| clownware-code-tools:test-scaffold | 100 | 90 | F06 | +| clownware-go-tools:go-pr-description | 100 | 100 | — | +| clownware-go-tools:perf-budget-check | 100 | 100 | — | +| clownware-go-tools:sqlc-query-scaffold | 100 | 100 | — | +| clownware-go-tools:templ-component-scaffold | 100 | 90 | F07 | +| clownware-go-tools:test-scaffold | 100 | 90 | F06 | +| pezza-design-system:pezza-design | 100 | 95 | F10 | +| clownware-rust-tools:gate-check | 100 | 100 | — | +| clownware-rust-tools:test-scaffold | 100 | 80 | F03, F06 | +| product-dev:product-flow | 100 | 100 | — | +| product-dev:product-ideation | 100 | 95 | F11 | +| product-dev:status | 100 | 100 | — | +| product-dev:tech-spec | 100 | 100 | — | +| product-dev:ux-optimization | 100 | 100 | — | + +## Finding resolution + +| ID | Severity | Title | Fixed in | Verification | +|---|---|---|---|---| +| F01 | high | GitHits frontmatter fails the authoritative validator | ae314c4 | PyYAML parses the frontmatter; claude plugin validate passes code-tools; validate_plugins.py and CI regression test enforce real YAML parsing. | +| F02 | high | Release dry-run can discard pre-existing edits | ae314c4 | Instruction rewritten to work on temporary copies and forbid git restore/checkout/reset as cleanup. Not re-executed by an agent in this pass. | +| F03 | medium | Rust scaffold verification does not compile tests | 606dd98 | Fixture re-run: cargo check exit 0, cargo test --no-run exit 101 on the same type error; the skill now mandates the latter (reproductions.json). | +| F04 | medium | Accessibility inventory misses Astro and templ | ae314c4 | Fixture with index.astro and view.templ returns "2 files" in bash and zsh; stop instruction replaced (reproductions.json, regression test). | +| F05 | medium | Git guard does not cover common executable forms | ae314c4 | /usr/bin/git, env, env -i, command, and git -C forms now deny; plain git push -n and echo remain allowed (reproductions.json, regression test). Header narrows the guarantee. | +| F06 | medium | Test-scaffold discovery promises more than the body permits | ae314c4, 45ff760, 606dd98 | Three descriptions limit discovery to explicit scaffolding; bodies redirect working-test requests to executable assertions. Static review; no discovery test run. | +| F07 | medium | Generic scaffold fallback still mandates starter styling | 41a0029, 45ff760 | Both scaffolds read the target styling system first and make starter classes conditional. Static review; no generated UI evaluated. | +| F08 | medium | Build freshness rule omits uncommitted edits | 41a0029 | Freshness rule requires a rebuild or repository fingerprint; timestamps excluded; unverifiable builds report as not run. Static review. | +| F09 | medium | Skill audit treats allowed-tools as a restrictive boundary | ae314c4, 2c08f05 | skill-audit and MAINTAINING.md treat allowed-tools as an approval grant and require per-host discovery tests. Static review. | +| F10 | low | Pezza mark instructions have an unresolved exception | b189084 | Rule 3 distinguishes altering the stroke master from placing official filled artwork. Static review. | +| F11 | low | Ideation requires a second user override | product-dev bff7e06 | Escape hatch respects the first explicit override and records open assumptions. Static review; committed on branch fix/ideation-first-override. | + +## Still unvalidated + +- Behavioral outcomes for every skill; the baseline's single Codex sample was not repeated, and the narrowed test-scaffold descriptions (F06) have had no discovery test on any host/model. +- The plugin-release dry-run rewrite (F02) was verified by reading, not by an agent execution against a dirty scratch repository. +- Cross-host portability, unchanged from the baseline. +- Release availability: the release commits exist only on local branches until pushed and merged; installed copies still trail the source (see `installations` in `audit.json`). + +## Observation (unscored) + +The security-audit surface probe runs `rg` without a path argument. When the host runs pre-fetch commands with a non-terminal, readable stdin, ripgrep searches stdin and blocks; with `/dev/null` it searches the working tree as intended. The baseline harness passed the same probe, and the host's stdin handling was not verified in either run, so this is recorded for follow-up rather than scored. + +## Ops ingestion + +`audit.json` is the scored record; `ops-payload.json` is generated by `scripts/publish_skill_audit.py`. Per the signal contract, every entity carries an empty findings summary at severity 0, which clears the baseline findings in the `skill_audit` domain. `publication.json` holds the server acknowledgement. diff --git a/docs/audits/2026-09-05-post-fix/audit.json b/docs/audits/2026-09-05-post-fix/audit.json new file mode 100644 index 0000000..d399ca9 --- /dev/null +++ b/docs/audits/2026-09-05-post-fix/audit.json @@ -0,0 +1,769 @@ +{ + "schema_version": 1, + "run_id": "owned-skills-2026-09-05-post-fix", + "observed_at": 1788624783, + "rubric_version": "static-review-v1", + "reviewer": "Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample", + "baseline_run_id": "owned-skills-2026-09-05", + "rubric": { + "baseline": 100, + "deductions": { + "low": 5, + "medium": 10, + "high": 20, + "critical": 40 + }, + "meaning": "Review index, not probability, effectiveness, or behavioral benchmark. 100 means no scored findings within stated coverage. Findings can remain even when a model compensates. Plugin packaging score is separate from mean skill score.", + "scope": "33 owned canonical skill entrypoints in 6 plugins. Third-party/system skills and legacy personal copies are inventory-only, not scored. Post-fix pass re-reviews every entity in scope against the same rubric; resolved findings are retained below with status and fix commits." + }, + "findings": [ + { + "id": "F01", + "severity": 3, + "title": "GitHits frontmatter fails the authoritative validator", + "detail": "The unquoted description contains colon-space sequences. Both PyYAML and claude plugin validate reject it. Claude validator reports metadata will be dropped at runtime. Catalog CI only regex-checks field presence, so it misses this defect.", + "references": [ + "plugins/code-tools/skills/githits-research/SKILL.md:3", + ".github/workflows/validate.yml:180" + ], + "recommendation": "Use a YAML block scalar and run a real YAML parser and host validator in CI.", + "status": "resolved", + "resolved_in": "ae314c4", + "verification": "PyYAML parses the frontmatter; claude plugin validate passes code-tools; validate_plugins.py and CI regression test enforce real YAML parsing." + }, + { + "id": "F02", + "severity": 3, + "title": "Release dry-run can discard pre-existing edits", + "detail": "The dry-run edits real files and then runs git checkout -- . A scratch Git reproduction lost an existing userNote field. The dirty-tree warning does not preserve the original bytes.", + "references": [ + "plugins/code-tools/skills/plugin-release/SKILL.md:80" + ], + "recommendation": "Generate the proposed diff in a temporary copy, or restore an exact pre-run snapshot without discarding user changes.", + "status": "resolved", + "resolved_in": "ae314c4", + "verification": "Instruction rewritten to work on temporary copies and forbid git restore/checkout/reset as cleanup. Not re-executed by an agent in this pass." + }, + { + "id": "F03", + "severity": 2, + "title": "Rust scaffold verification does not compile tests", + "detail": "A fixture with a type error inside an ignored cfg(test) test passes cargo check (0) and fails cargo test --no-run (101). The skill promises scaffold compilation but selects the weaker command.", + "references": [ + "plugins/rust-tools/skills/test-scaffold/SKILL.md:70" + ], + "recommendation": "Use cargo test --no-run or cargo check --tests with the owning crate and feature configuration.", + "status": "resolved", + "resolved_in": "606dd98", + "verification": "Fixture re-run: cargo check exit 0, cargo test --no-run exit 101 on the same type error; the skill now mandates the latter (reproductions.json)." + }, + { + "id": "F04", + "severity": 2, + "title": "Accessibility inventory misses Astro and templ", + "detail": "The inventory omits .astro and .templ yet instructs the agent to stop on zero. A fixture containing index.astro returns 0 files and the stop instruction. This is a detection gap in stacks maintained by this marketplace.", + "references": [ + "plugins/code-tools/skills/a11y-audit/SKILL.md:11" + ], + "recommendation": "Include supported template extensions and treat zero probe matches as a hypothesis until the target surface is checked.", + "status": "resolved", + "resolved_in": "ae314c4", + "verification": "Fixture with index.astro and view.templ returns \"2 files\" in bash and zsh; stop instruction replaced (reproductions.json, regression test)." + }, + { + "id": "F05", + "severity": 2, + "title": "Git guard does not cover common executable forms", + "detail": "Payload-only tests deny git commit --no-verify but silently allow /usr/bin/git commit --no-verify and env git commit --no-verify. No commit commands were executed. This is incomplete convenience-hook coverage, not proof that repository CI can be bypassed.", + "references": [ + "plugins/code-tools/hooks/git-guard.sh:36" + ], + "recommendation": "Narrow the documented guarantee; normalize supported invocation forms and retain authoritative checks outside the agent hook.", + "status": "resolved", + "resolved_in": "ae314c4", + "verification": "/usr/bin/git, env, env -i, command, and git -C forms now deny; plain git push -n and echo remain allowed (reproductions.json, regression test). Header narrows the guarantee." + }, + { + "id": "F06", + "severity": 2, + "title": "Test-scaffold discovery promises more than the body permits", + "detail": "JS, Go and Rust descriptions trigger on write tests/add coverage, while bodies mandate todo/skip/ignore stubs and forbid assertions. One blind Codex sample correctly prioritized an explicit request for assertions: 4/4 artifact criteria met. This finding is the contradictory contract, not a demonstrated failure of that sample.", + "references": [ + "plugins/code-tools/skills/test-scaffold/SKILL.md:79", + "plugins/go-tools/skills/test-scaffold/SKILL.md:74", + "plugins/rust-tools/skills/test-scaffold/SKILL.md:75" + ], + "recommendation": "Limit discovery to explicit scaffolding, or make complete tests the default when requested and stubs an explicit mode.", + "status": "resolved", + "resolved_in": "ae314c4, 45ff760, 606dd98", + "verification": "Three descriptions limit discovery to explicit scaffolding; bodies redirect working-test requests to executable assertions. Static review; no discovery test run." + }, + { + "id": "F07", + "severity": 2, + "title": "Generic scaffold fallback still mandates starter styling", + "detail": "Astro component-scaffold and Go templ-component-scaffold allow alternate layouts but still prescribe Tailwind and starter tokens. This contradicts plugin claims of fallback support for other projects. Verified instruction mismatch; no generated UI was evaluated.", + "references": [ + "plugins/astro-tools/skills/component-scaffold/SKILL.md:106", + "plugins/go-tools/skills/templ-component-scaffold/SKILL.md:39" + ], + "recommendation": "Read the target styling system and make starter classes conditional on the starter being present.", + "status": "resolved", + "resolved_in": "41a0029, 45ff760", + "verification": "Both scaffolds read the target styling system first and make starter classes conditional. Static review; no generated UI evaluated." + }, + { + "id": "F08", + "severity": 2, + "title": "Build freshness rule omits uncommitted edits", + "detail": "Astro perf-budget-check uses the last committed src timestamp versus dist mtime. An uncommitted source edit leaves the git log timestamp unchanged, so this method cannot establish working-tree artifact freshness. Static algorithm review; no production build or perf gate run.", + "references": [ + "plugins/astro-tools/skills/perf-budget-check/SKILL.md:30" + ], + "recommendation": "Use the repository build/cache fingerprint or rebuild before reporting working-tree budgets.", + "status": "resolved", + "resolved_in": "41a0029", + "verification": "Freshness rule requires a rebuild or repository fingerprint; timestamps excluded; unverifiable builds report as not run. Static review." + }, + { + "id": "F09", + "severity": 2, + "title": "Skill audit treats allowed-tools as a restrictive boundary", + "detail": "The audit says underscoping allowed-tools breaks runtime. Current Claude documentation describes it as an approval grant; separate restrictions govern tool removal. The body also assumes universal undertriggering without a model-specific evaluation.", + "references": [ + "plugins/code-tools/skills/skill-audit/SKILL.md:25", + "plugins/code-tools/skills/skill-audit/SKILL.md:30", + "https://code.claude.com/docs/en/skills" + ], + "recommendation": "Audit approval grants separately from restrictions and test triggering per host/model rather than using a permanent assumption.", + "status": "resolved", + "resolved_in": "ae314c4, 2c08f05", + "verification": "skill-audit and MAINTAINING.md treat allowed-tools as an approval grant and require per-host discovery tests. Static review." + }, + { + "id": "F10", + "severity": 1, + "title": "Pezza mark instructions have an unresolved exception", + "detail": "The hard rule says never filled/outlined, while the file map and production guidance explicitly provide official filled outlines for static placement. The intended distinction between altering artwork and using official assets should be explicit. No visual defect is claimed.", + "references": [ + "plugins/pezza-design-system/skills/pezza-design/SKILL.md:11", + "plugins/pezza-design-system/skills/pezza-design/SKILL.md:25" + ], + "recommendation": "State that official filled artwork is permitted and that the no-fill rule concerns modifying the stroke master.", + "status": "resolved", + "resolved_in": "b189084", + "verification": "Rule 3 distinguishes altering the stroke master from placing official filled artwork. Static review." + }, + { + "id": "F11", + "severity": 1, + "title": "Ideation requires a second user override", + "detail": "The escape hatch requires pushing back once when the user says just move on, respecting only a second pushback. This adds friction for already explicit scope choices. Instruction review only, not a behavioral failure.", + "references": [ + "../product-dev/plugin/skills/product-ideation/SKILL.md:23" + ], + "recommendation": "Respect the first explicit override while recording unresolved assumptions.", + "status": "resolved", + "resolved_in": "product-dev bff7e06", + "verification": "Escape hatch respects the first explicit override and records open assumptions. Static review; committed on branch fix/ideation-first-override." + } + ], + "entities": [ + { + "id": "skill:clownware-astro-tools:astro-pr-description", + "kind": "skill", + "name": "clownware-astro-tools:astro-pr-description", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "1864d0f37042b612e71a5fb8080d45b65a7edb885802513b048910a7fe518c94", + "source_path": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-astro-tools:component-scaffold", + "kind": "skill", + "name": "clownware-astro-tools:component-scaffold", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "3350f22feab00304d9750ece760d42d6e2af759388925c0d75a4e3dfc4d3bce3", + "source_path": "plugins/astro-tools/skills/component-scaffold/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-astro-tools:perf-budget-check", + "kind": "skill", + "name": "clownware-astro-tools:perf-budget-check", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "66021eadc47b33e2f2eacd70e37d7cd27dd2086e09605593f0b5e829b88e363b", + "source_path": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "plugin:clownware/clownware-astro-tools", + "kind": "plugin", + "name": "clownware-astro-tools", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "c4d40c7fbc7b2ebcdce871e70b9e3011dd43427fc5829d8efc7f8003629b5087", + "source_path": "plugins/astro-tools", + "review_scope": "Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end as an installed plugin", + "portability": "Codex import and host hook behavior not evaluated", + "version": "0.5.2", + "mean_skill_review_score": 100.0, + "sha256_method": "sha256 over sorted \"\\t\\n\" lines for all 6 tracked files under source_path at revision (differs from the baseline plugin hash, whose method was not recorded)" + }, + { + "id": "skill:clownware-code-tools:a11y-audit", + "kind": "skill", + "name": "clownware-code-tools:a11y-audit", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "47ff3c6e1aeabbc238df6e0e4dd09943d89a4572233d1088c92bac40dc00eeff", + "source_path": "plugins/code-tools/skills/a11y-audit/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:adr", + "kind": "skill", + "name": "clownware-code-tools:adr", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "3377e6ceb2add1e708b55f78a12cb6729c03ffe35716f8f69365beb752dcda65", + "source_path": "plugins/code-tools/skills/adr/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:arch-audit", + "kind": "skill", + "name": "clownware-code-tools:arch-audit", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "7fd7ee54c0c055901d52bb86b5caf2b348b77ec8d20703389d52cdce86cfe53e", + "source_path": "plugins/code-tools/skills/arch-audit/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:audit-fix", + "kind": "skill", + "name": "clownware-code-tools:audit-fix", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "396f9638b2a135990a631815658361edfc2e83431ae7e58be13868f454bb4ccb", + "source_path": "plugins/code-tools/skills/audit-fix/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:deps-audit", + "kind": "skill", + "name": "clownware-code-tools:deps-audit", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "f13ac10c8eca417bf372d31aa70364e873ccf4e1c52618f5887e728ff74561c6", + "source_path": "plugins/code-tools/skills/deps-audit/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:design-audit", + "kind": "skill", + "name": "clownware-code-tools:design-audit", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "4d524a51b9f65ee73c0717083dc490470551b2339b3aeb78f0923f9935df3d7f", + "source_path": "plugins/code-tools/skills/design-audit/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:devops-audit", + "kind": "skill", + "name": "clownware-code-tools:devops-audit", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "f67762ecea63bdf4aa92fc11d0add1e4480ac5f015479b3526b852c539cd887d", + "source_path": "plugins/code-tools/skills/devops-audit/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:githits-research", + "kind": "skill", + "name": "clownware-code-tools:githits-research", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "ab7c07ba060863086c908dfa0dbab435e3aec4bba63a9ae25019bd97daf1b877", + "source_path": "plugins/code-tools/skills/githits-research/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; mostly shared instructions/assets; host metadata still needs validation" + }, + { + "id": "skill:clownware-code-tools:perf-audit", + "kind": "skill", + "name": "clownware-code-tools:perf-audit", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "9b5a4b26761da841f09bb0a7c6a21648f2f92c34d8b4d46c1aab793fa4be192d", + "source_path": "plugins/code-tools/skills/perf-audit/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:plugin-release", + "kind": "skill", + "name": "clownware-code-tools:plugin-release", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "ae3dd3937901c46aa1a40ac4a2ed6bab94470ae3c0f24c80977178086bb99c5b", + "source_path": "plugins/code-tools/skills/plugin-release/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:pr-description", + "kind": "skill", + "name": "clownware-code-tools:pr-description", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "24a0209ed92579bc8e0de8a903e7121f2e73563312e2dedfc4c47df2017ada3b", + "source_path": "plugins/code-tools/skills/pr-description/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:root-cause-debug", + "kind": "skill", + "name": "clownware-code-tools:root-cause-debug", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "1ca660de4395a3298a5b9fce04ed105b7abcd67e91d36adcb4490918673ead76", + "source_path": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:security-audit", + "kind": "skill", + "name": "clownware-code-tools:security-audit", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "1444d50627c59f7b575791f2d1858cbcae32abbe2675d51d52d12755e0cecd51", + "source_path": "plugins/code-tools/skills/security-audit/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:skill-audit", + "kind": "skill", + "name": "clownware-code-tools:skill-audit", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "cd790d6c12d3b2b4bb8a127b39140166df29ba7a547f5a9fc7c598804694b506", + "source_path": "plugins/code-tools/skills/skill-audit/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:skill-validate", + "kind": "skill", + "name": "clownware-code-tools:skill-validate", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "69ed3c6f802f9927742549972d5c232bcf8811fae8258f17bb13cf1a46d0ba45", + "source_path": "plugins/code-tools/skills/skill-validate/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:test-audit", + "kind": "skill", + "name": "clownware-code-tools:test-audit", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "43ecb97cffbd0b97498d60d95a22160551ebf090e90c2e35d7d1a26b16ae54b0", + "source_path": "plugins/code-tools/skills/test-audit/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:test-scaffold", + "kind": "skill", + "name": "clownware-code-tools:test-scaffold", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "3a3e69ea252033aa75690439f5bcd740d121838d2615787e09685463add33488", + "source_path": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "plugin:clownware/clownware-code-tools", + "kind": "plugin", + "name": "clownware-code-tools", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "e7b157e024ec9e6be8302a3c2b18207d7725322cfd55d739c0be86204c925374", + "source_path": "plugins/code-tools", + "review_scope": "Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end as an installed plugin", + "portability": "Codex import and host hook behavior not evaluated", + "version": "0.15.3", + "mean_skill_review_score": 100.0, + "sha256_method": "sha256 over sorted \"\\t\\n\" lines for all 20 tracked files under source_path at revision (differs from the baseline plugin hash, whose method was not recorded)" + }, + { + "id": "skill:clownware-go-tools:go-pr-description", + "kind": "skill", + "name": "clownware-go-tools:go-pr-description", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "eb8dd9d874fad5c173c173794385c9fbc6776effcfab0642e511f87f4b35d255", + "source_path": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-go-tools:perf-budget-check", + "kind": "skill", + "name": "clownware-go-tools:perf-budget-check", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "71706ef56c5c19c3f762ac09c2d52750e22ee51f15ae1e9347b18c83ccd55243", + "source_path": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-go-tools:sqlc-query-scaffold", + "kind": "skill", + "name": "clownware-go-tools:sqlc-query-scaffold", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "64cd484b136ce45257de0aafedf5ae51583a2ade5d0081c46ae04710b2b2525e", + "source_path": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-go-tools:templ-component-scaffold", + "kind": "skill", + "name": "clownware-go-tools:templ-component-scaffold", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "1b59a0598977b09822ae0b681adeb5e28e870d6ad7148f05566394e5b544c264", + "source_path": "plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-go-tools:test-scaffold", + "kind": "skill", + "name": "clownware-go-tools:test-scaffold", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "c90511a85f3d935b2d65cb437c95fe78fd1cf5f0199ea9fd0529c061d24351c9", + "source_path": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "plugin:clownware/clownware-go-tools", + "kind": "plugin", + "name": "clownware-go-tools", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "3b490fdff648d7dcbf11ac0b0a2384aa7db275368795aa3c4122102dbb6c48c2", + "source_path": "plugins/go-tools", + "review_scope": "Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end as an installed plugin", + "portability": "Codex import and host hook behavior not evaluated", + "version": "0.3.3", + "mean_skill_review_score": 100.0, + "sha256_method": "sha256 over sorted \"\\t\\n\" lines for all 8 tracked files under source_path at revision (differs from the baseline plugin hash, whose method was not recorded)" + }, + { + "id": "skill:pezza-design-system:pezza-design", + "kind": "skill", + "name": "pezza-design-system:pezza-design", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "2a7001ccc1d2801bf93cd9aa64a16016a51edcb57d362cd32f729ed851b1b0e1", + "source_path": "plugins/pezza-design-system/skills/pezza-design/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; mostly shared instructions/assets; host metadata still needs validation" + }, + { + "id": "plugin:clownware/pezza-design-system", + "kind": "plugin", + "name": "pezza-design-system", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "3a08bca4887f067d64c7ec61b5ed8430bc91b1d953025493b34b38868db93d38", + "source_path": "plugins/pezza-design-system", + "review_scope": "Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end as an installed plugin", + "portability": "Codex import and host hook behavior not evaluated", + "version": "0.5.3", + "mean_skill_review_score": 100.0, + "sha256_method": "sha256 over sorted \"\\t\\n\" lines for all 118 tracked files under source_path at revision (differs from the baseline plugin hash, whose method was not recorded)" + }, + { + "id": "skill:clownware-rust-tools:gate-check", + "kind": "skill", + "name": "clownware-rust-tools:gate-check", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "54b3ab256f248586373129d1f3e1a2ce86eb0dac44907310c1f66f758bb9e0b9", + "source_path": "plugins/rust-tools/skills/gate-check/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-rust-tools:test-scaffold", + "kind": "skill", + "name": "clownware-rust-tools:test-scaffold", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "10c35ed5e65e5bb1a6cd26d0347e9e5889964484625cedadaf29c07d759cab53", + "source_path": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "plugin:clownware/clownware-rust-tools", + "kind": "plugin", + "name": "clownware-rust-tools", + "review_score": 100, + "finding_ids": [], + "revision": "b189084cb739b9661cf3f1db6acc4bcea1813b42", + "sha256": "20030076d8d7a7879f0512a62cb6cb4bef5e6f79d79926f7ef3a6160b01f898c", + "source_path": "plugins/rust-tools", + "review_scope": "Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end as an installed plugin", + "portability": "Codex import and host hook behavior not evaluated", + "version": "0.1.2", + "mean_skill_review_score": 100.0, + "sha256_method": "sha256 over sorted \"\\t\\n\" lines for all 5 tracked files under source_path at revision (differs from the baseline plugin hash, whose method was not recorded)" + }, + { + "id": "skill:product-dev:product-flow", + "kind": "skill", + "name": "product-dev:product-flow", + "review_score": 100, + "finding_ids": [], + "revision": "bff7e06933ac4858bedaf918bd14c2374fcae67c", + "sha256": "def6e397565747db072dde9074fde42a035f7a1809faab6fdb3ddf87e969611c", + "source_path": "plugin/skills/product-flow/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:product-dev:product-ideation", + "kind": "skill", + "name": "product-dev:product-ideation", + "review_score": 100, + "finding_ids": [], + "revision": "bff7e06933ac4858bedaf918bd14c2374fcae67c", + "sha256": "ba8dd54480368fec2073183ff195748c90cfcf095257b5696107270e38c96f3b", + "source_path": "plugin/skills/product-ideation/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:product-dev:status", + "kind": "skill", + "name": "product-dev:status", + "review_score": 100, + "finding_ids": [], + "revision": "bff7e06933ac4858bedaf918bd14c2374fcae67c", + "sha256": "9fad3c8f9a25355a16de5e1426c9262d3058caf91f19ff1ef1596c5063d494ae", + "source_path": "plugin/skills/status/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:product-dev:tech-spec", + "kind": "skill", + "name": "product-dev:tech-spec", + "review_score": 100, + "finding_ids": [], + "revision": "bff7e06933ac4858bedaf918bd14c2374fcae67c", + "sha256": "b5953bf4ed599ba0f4a073cc6bcd571b0dc7f6a7fbd1eb3b5f12eb12d2f405aa", + "source_path": "plugin/skills/tech-spec/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:product-dev:ux-optimization", + "kind": "skill", + "name": "product-dev:ux-optimization", + "review_score": 100, + "finding_ids": [], + "revision": "bff7e06933ac4858bedaf918bd14c2374fcae67c", + "sha256": "8e7278e2e3e6d273def9dfe1f64f672430e286d627faea5b47200782bce61314", + "source_path": "plugin/skills/ux-optimization/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "plugin:clownware/product-dev", + "kind": "plugin", + "name": "product-dev", + "review_score": 100, + "finding_ids": [], + "revision": "bff7e06933ac4858bedaf918bd14c2374fcae67c", + "sha256": "6b732448a543fc6fa5d257ae002693502884179741b3245038143028a4f0cadb", + "source_path": "plugin", + "review_scope": "Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.", + "behavior": "not evaluated end-to-end as an installed plugin", + "portability": "Codex import and host hook behavior not evaluated", + "version": "0.5.0", + "mean_skill_review_score": 100.0, + "sha256_method": "sha256 over sorted \"\\t\\n\" lines for all 121 tracked files under source_path at revision (differs from the baseline plugin hash, whose method was not recorded)" + } + ], + "installations": [ + { + "plugin": "clownware-astro-tools", + "local_source_version": "0.5.2", + "installed_claude_versions": [ + "0.4.0" + ], + "interpretation": "Source-versus-local-install drift only; the release commits are on an unpushed branch, so remote availability is pending." + }, + { + "plugin": "clownware-code-tools", + "local_source_version": "0.15.3", + "installed_claude_versions": [ + "0.14.0" + ], + "interpretation": "Source-versus-local-install drift only; the release commits are on an unpushed branch, so remote availability is pending." + }, + { + "plugin": "clownware-go-tools", + "local_source_version": "0.3.3", + "installed_claude_versions": [ + "0.2.0" + ], + "interpretation": "Source-versus-local-install drift only; the release commits are on an unpushed branch, so remote availability is pending." + }, + { + "plugin": "pezza-design-system", + "local_source_version": "0.5.3", + "installed_claude_versions": [ + "0.5.1" + ], + "interpretation": "Source-versus-local-install drift only; the release commits are on an unpushed branch, so remote availability is pending." + }, + { + "plugin": "clownware-rust-tools", + "local_source_version": "0.1.2", + "installed_claude_versions": [ + "0.1.0" + ], + "interpretation": "Source-versus-local-install drift only; the release commits are on an unpushed branch, so remote availability is pending." + }, + { + "plugin": "product-dev", + "local_source_version": "0.5.0", + "installed_claude_versions": [ + "0.1.0" + ], + "interpretation": "Source-versus-local-install drift only; the release commits are on an unpushed branch, so remote availability is pending." + } + ], + "evidence": { + "prefetch_commands": 107, + "probe_runs": 642, + "probe_exit_stderr_nonempty_checks_passed": 642, + "probe_harness_note": "bash -c and zsh -f -c in empty, marketplace-repo, and unrelated contexts with stdin=/dev/null. Four backtick prose fragments excluded by inspection (skill-audit:48, rust test-scaffold:32). Exit/noise checks do not establish semantic correctness.", + "claude_validator_passed": 6, + "claude_validator_total": 6, + "yaml_parse_passed": 33, + "yaml_parse_total": 33, + "regression_tests_passed": 8, + "regression_tests_total": 8, + "reproductions": "reproductions.json: guard command forms, astro/templ surface probe (bash+zsh), cargo check vs cargo test --no-run fixture; release dry-run not re-executed", + "blind_sample": { + "repeated": false, + "note": "Baseline sample (code-tools test-scaffold, 4/4 artifact criteria) not repeated; the F06 description change is unvalidated behaviorally." + } + }, + "publication": { + "status": "pending", + "endpoint": "https://ops.chris-d8c.workers.dev/ingest" + } +} diff --git a/docs/audits/2026-09-05-post-fix/ops-payload.json b/docs/audits/2026-09-05-post-fix/ops-payload.json new file mode 100644 index 0000000..3a7c3e1 --- /dev/null +++ b/docs/audits/2026-09-05-post-fix/ops-payload.json @@ -0,0 +1,1917 @@ +{ + "entities": [ + { + "id": "skill:clownware-astro-tools:astro-pr-description", + "kind": "skill", + "name": "clownware-astro-tools:astro-pr-description", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-astro-tools:component-scaffold", + "kind": "skill", + "name": "clownware-astro-tools:component-scaffold", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-astro-tools:perf-budget-check", + "kind": "skill", + "name": "clownware-astro-tools:perf-budget-check", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "plugin:clownware/clownware-astro-tools", + "kind": "plugin", + "name": "clownware-astro-tools", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:a11y-audit", + "kind": "skill", + "name": "clownware-code-tools:a11y-audit", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:adr", + "kind": "skill", + "name": "clownware-code-tools:adr", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:arch-audit", + "kind": "skill", + "name": "clownware-code-tools:arch-audit", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:audit-fix", + "kind": "skill", + "name": "clownware-code-tools:audit-fix", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:deps-audit", + "kind": "skill", + "name": "clownware-code-tools:deps-audit", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:design-audit", + "kind": "skill", + "name": "clownware-code-tools:design-audit", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:devops-audit", + "kind": "skill", + "name": "clownware-code-tools:devops-audit", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:githits-research", + "kind": "skill", + "name": "clownware-code-tools:githits-research", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:perf-audit", + "kind": "skill", + "name": "clownware-code-tools:perf-audit", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:plugin-release", + "kind": "skill", + "name": "clownware-code-tools:plugin-release", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:pr-description", + "kind": "skill", + "name": "clownware-code-tools:pr-description", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:root-cause-debug", + "kind": "skill", + "name": "clownware-code-tools:root-cause-debug", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:security-audit", + "kind": "skill", + "name": "clownware-code-tools:security-audit", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:skill-audit", + "kind": "skill", + "name": "clownware-code-tools:skill-audit", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:skill-validate", + "kind": "skill", + "name": "clownware-code-tools:skill-validate", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:test-audit", + "kind": "skill", + "name": "clownware-code-tools:test-audit", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:test-scaffold", + "kind": "skill", + "name": "clownware-code-tools:test-scaffold", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "plugin:clownware/clownware-code-tools", + "kind": "plugin", + "name": "clownware-code-tools", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-go-tools:go-pr-description", + "kind": "skill", + "name": "clownware-go-tools:go-pr-description", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-go-tools:perf-budget-check", + "kind": "skill", + "name": "clownware-go-tools:perf-budget-check", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-go-tools:sqlc-query-scaffold", + "kind": "skill", + "name": "clownware-go-tools:sqlc-query-scaffold", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-go-tools:templ-component-scaffold", + "kind": "skill", + "name": "clownware-go-tools:templ-component-scaffold", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-go-tools:test-scaffold", + "kind": "skill", + "name": "clownware-go-tools:test-scaffold", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "plugin:clownware/clownware-go-tools", + "kind": "plugin", + "name": "clownware-go-tools", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:pezza-design-system:pezza-design", + "kind": "skill", + "name": "pezza-design-system:pezza-design", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "plugin:clownware/pezza-design-system", + "kind": "plugin", + "name": "pezza-design-system", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-rust-tools:gate-check", + "kind": "skill", + "name": "clownware-rust-tools:gate-check", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-rust-tools:test-scaffold", + "kind": "skill", + "name": "clownware-rust-tools:test-scaffold", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "plugin:clownware/clownware-rust-tools", + "kind": "plugin", + "name": "clownware-rust-tools", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:product-dev:product-flow", + "kind": "skill", + "name": "product-dev:product-flow", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:product-dev:product-ideation", + "kind": "skill", + "name": "product-dev:product-ideation", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:product-dev:status", + "kind": "skill", + "name": "product-dev:status", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:product-dev:tech-spec", + "kind": "skill", + "name": "product-dev:tech-spec", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:product-dev:ux-optimization", + "kind": "skill", + "name": "product-dev:ux-optimization", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "plugin:clownware/product-dev", + "kind": "plugin", + "name": "product-dev", + "category": "plugin_skill", + "owner": "clownware" + } + ], + "signals": [ + { + "entityId": "skill:clownware-astro-tools:astro-pr-description", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-astro-tools:astro-pr-description", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-astro-tools:astro-pr-description", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"1864d0f37042b612e71a5fb8080d45b65a7edb885802513b048910a7fe518c94\",\"source_path\":\"plugins/astro-tools/skills/astro-pr-description/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-astro-tools:astro-pr-description", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-astro-tools:astro-pr-description", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-astro-tools:component-scaffold", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-astro-tools:component-scaffold", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-astro-tools:component-scaffold", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"3350f22feab00304d9750ece760d42d6e2af759388925c0d75a4e3dfc4d3bce3\",\"source_path\":\"plugins/astro-tools/skills/component-scaffold/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-astro-tools:component-scaffold", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-astro-tools:component-scaffold", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-astro-tools:perf-budget-check", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-astro-tools:perf-budget-check", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-astro-tools:perf-budget-check", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"66021eadc47b33e2f2eacd70e37d7cd27dd2086e09605593f0b5e829b88e363b\",\"source_path\":\"plugins/astro-tools/skills/perf-budget-check/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-astro-tools:perf-budget-check", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-astro-tools:perf-budget-check", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "plugin:clownware/clownware-astro-tools", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "plugin:clownware/clownware-astro-tools", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "plugin:clownware/clownware-astro-tools", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"c4d40c7fbc7b2ebcdce871e70b9e3011dd43427fc5829d8efc7f8003629b5087\",\"source_path\":\"plugins/astro-tools\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "plugin:clownware/clownware-astro-tools", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end as an installed plugin", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "plugin:clownware/clownware-astro-tools", + "metric": "skill_audit.portability", + "valueText": "Codex import and host hook behavior not evaluated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:a11y-audit", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:a11y-audit", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:a11y-audit", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"47ff3c6e1aeabbc238df6e0e4dd09943d89a4572233d1088c92bac40dc00eeff\",\"source_path\":\"plugins/code-tools/skills/a11y-audit/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:a11y-audit", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:a11y-audit", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:adr", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:adr", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:adr", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"3377e6ceb2add1e708b55f78a12cb6729c03ffe35716f8f69365beb752dcda65\",\"source_path\":\"plugins/code-tools/skills/adr/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:adr", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:adr", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:arch-audit", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:arch-audit", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:arch-audit", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"7fd7ee54c0c055901d52bb86b5caf2b348b77ec8d20703389d52cdce86cfe53e\",\"source_path\":\"plugins/code-tools/skills/arch-audit/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:arch-audit", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:arch-audit", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:audit-fix", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:audit-fix", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:audit-fix", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"396f9638b2a135990a631815658361edfc2e83431ae7e58be13868f454bb4ccb\",\"source_path\":\"plugins/code-tools/skills/audit-fix/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:audit-fix", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:audit-fix", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:deps-audit", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:deps-audit", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:deps-audit", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"f13ac10c8eca417bf372d31aa70364e873ccf4e1c52618f5887e728ff74561c6\",\"source_path\":\"plugins/code-tools/skills/deps-audit/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:deps-audit", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:deps-audit", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:design-audit", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:design-audit", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:design-audit", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"4d524a51b9f65ee73c0717083dc490470551b2339b3aeb78f0923f9935df3d7f\",\"source_path\":\"plugins/code-tools/skills/design-audit/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:design-audit", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:design-audit", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:devops-audit", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:devops-audit", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:devops-audit", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"f67762ecea63bdf4aa92fc11d0add1e4480ac5f015479b3526b852c539cd887d\",\"source_path\":\"plugins/code-tools/skills/devops-audit/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:devops-audit", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:devops-audit", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:githits-research", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:githits-research", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:githits-research", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"ab7c07ba060863086c908dfa0dbab435e3aec4bba63a9ae25019bd97daf1b877\",\"source_path\":\"plugins/code-tools/skills/githits-research/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:githits-research", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:githits-research", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; mostly shared instructions/assets; host metadata still needs validation", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:perf-audit", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:perf-audit", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:perf-audit", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"9b5a4b26761da841f09bb0a7c6a21648f2f92c34d8b4d46c1aab793fa4be192d\",\"source_path\":\"plugins/code-tools/skills/perf-audit/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:perf-audit", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:perf-audit", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:plugin-release", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:plugin-release", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:plugin-release", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"ae3dd3937901c46aa1a40ac4a2ed6bab94470ae3c0f24c80977178086bb99c5b\",\"source_path\":\"plugins/code-tools/skills/plugin-release/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:plugin-release", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:plugin-release", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:pr-description", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:pr-description", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:pr-description", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"24a0209ed92579bc8e0de8a903e7121f2e73563312e2dedfc4c47df2017ada3b\",\"source_path\":\"plugins/code-tools/skills/pr-description/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:pr-description", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:pr-description", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:root-cause-debug", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:root-cause-debug", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:root-cause-debug", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"1ca660de4395a3298a5b9fce04ed105b7abcd67e91d36adcb4490918673ead76\",\"source_path\":\"plugins/code-tools/skills/root-cause-debug/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:root-cause-debug", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:root-cause-debug", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:security-audit", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:security-audit", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:security-audit", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"1444d50627c59f7b575791f2d1858cbcae32abbe2675d51d52d12755e0cecd51\",\"source_path\":\"plugins/code-tools/skills/security-audit/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:security-audit", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:security-audit", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:skill-audit", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:skill-audit", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:skill-audit", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"cd790d6c12d3b2b4bb8a127b39140166df29ba7a547f5a9fc7c598804694b506\",\"source_path\":\"plugins/code-tools/skills/skill-audit/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:skill-audit", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:skill-audit", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:skill-validate", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:skill-validate", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:skill-validate", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"69ed3c6f802f9927742549972d5c232bcf8811fae8258f17bb13cf1a46d0ba45\",\"source_path\":\"plugins/code-tools/skills/skill-validate/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:skill-validate", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:skill-validate", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:test-audit", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:test-audit", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:test-audit", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"43ecb97cffbd0b97498d60d95a22160551ebf090e90c2e35d7d1a26b16ae54b0\",\"source_path\":\"plugins/code-tools/skills/test-audit/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:test-audit", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:test-audit", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:test-scaffold", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:test-scaffold", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:test-scaffold", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"3a3e69ea252033aa75690439f5bcd740d121838d2615787e09685463add33488\",\"source_path\":\"plugins/code-tools/skills/test-scaffold/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:test-scaffold", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-code-tools:test-scaffold", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "plugin:clownware/clownware-code-tools", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "plugin:clownware/clownware-code-tools", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "plugin:clownware/clownware-code-tools", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"e7b157e024ec9e6be8302a3c2b18207d7725322cfd55d739c0be86204c925374\",\"source_path\":\"plugins/code-tools\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "plugin:clownware/clownware-code-tools", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end as an installed plugin", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "plugin:clownware/clownware-code-tools", + "metric": "skill_audit.portability", + "valueText": "Codex import and host hook behavior not evaluated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-go-tools:go-pr-description", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-go-tools:go-pr-description", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-go-tools:go-pr-description", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"eb8dd9d874fad5c173c173794385c9fbc6776effcfab0642e511f87f4b35d255\",\"source_path\":\"plugins/go-tools/skills/go-pr-description/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-go-tools:go-pr-description", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-go-tools:go-pr-description", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-go-tools:perf-budget-check", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-go-tools:perf-budget-check", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-go-tools:perf-budget-check", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"71706ef56c5c19c3f762ac09c2d52750e22ee51f15ae1e9347b18c83ccd55243\",\"source_path\":\"plugins/go-tools/skills/perf-budget-check/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-go-tools:perf-budget-check", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-go-tools:perf-budget-check", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-go-tools:sqlc-query-scaffold", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-go-tools:sqlc-query-scaffold", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-go-tools:sqlc-query-scaffold", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"64cd484b136ce45257de0aafedf5ae51583a2ade5d0081c46ae04710b2b2525e\",\"source_path\":\"plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-go-tools:sqlc-query-scaffold", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-go-tools:sqlc-query-scaffold", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-go-tools:templ-component-scaffold", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-go-tools:templ-component-scaffold", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-go-tools:templ-component-scaffold", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"1b59a0598977b09822ae0b681adeb5e28e870d6ad7148f05566394e5b544c264\",\"source_path\":\"plugins/go-tools/skills/templ-component-scaffold/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-go-tools:templ-component-scaffold", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-go-tools:templ-component-scaffold", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-go-tools:test-scaffold", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-go-tools:test-scaffold", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-go-tools:test-scaffold", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"c90511a85f3d935b2d65cb437c95fe78fd1cf5f0199ea9fd0529c061d24351c9\",\"source_path\":\"plugins/go-tools/skills/test-scaffold/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-go-tools:test-scaffold", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-go-tools:test-scaffold", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "plugin:clownware/clownware-go-tools", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "plugin:clownware/clownware-go-tools", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "plugin:clownware/clownware-go-tools", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"3b490fdff648d7dcbf11ac0b0a2384aa7db275368795aa3c4122102dbb6c48c2\",\"source_path\":\"plugins/go-tools\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "plugin:clownware/clownware-go-tools", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end as an installed plugin", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "plugin:clownware/clownware-go-tools", + "metric": "skill_audit.portability", + "valueText": "Codex import and host hook behavior not evaluated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:pezza-design-system:pezza-design", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:pezza-design-system:pezza-design", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:pezza-design-system:pezza-design", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"2a7001ccc1d2801bf93cd9aa64a16016a51edcb57d362cd32f729ed851b1b0e1\",\"source_path\":\"plugins/pezza-design-system/skills/pezza-design/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:pezza-design-system:pezza-design", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:pezza-design-system:pezza-design", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; mostly shared instructions/assets; host metadata still needs validation", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "plugin:clownware/pezza-design-system", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "plugin:clownware/pezza-design-system", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "plugin:clownware/pezza-design-system", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"3a08bca4887f067d64c7ec61b5ed8430bc91b1d953025493b34b38868db93d38\",\"source_path\":\"plugins/pezza-design-system\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "plugin:clownware/pezza-design-system", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end as an installed plugin", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "plugin:clownware/pezza-design-system", + "metric": "skill_audit.portability", + "valueText": "Codex import and host hook behavior not evaluated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-rust-tools:gate-check", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-rust-tools:gate-check", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-rust-tools:gate-check", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"54b3ab256f248586373129d1f3e1a2ce86eb0dac44907310c1f66f758bb9e0b9\",\"source_path\":\"plugins/rust-tools/skills/gate-check/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-rust-tools:gate-check", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-rust-tools:gate-check", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-rust-tools:test-scaffold", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-rust-tools:test-scaffold", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-rust-tools:test-scaffold", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"10c35ed5e65e5bb1a6cd26d0347e9e5889964484625cedadaf29c07d759cab53\",\"source_path\":\"plugins/rust-tools/skills/test-scaffold/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-rust-tools:test-scaffold", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:clownware-rust-tools:test-scaffold", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "plugin:clownware/clownware-rust-tools", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "plugin:clownware/clownware-rust-tools", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "plugin:clownware/clownware-rust-tools", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"b189084cb739b9661cf3f1db6acc4bcea1813b42\",\"sha256\":\"20030076d8d7a7879f0512a62cb6cb4bef5e6f79d79926f7ef3a6160b01f898c\",\"source_path\":\"plugins/rust-tools\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "plugin:clownware/clownware-rust-tools", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end as an installed plugin", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "plugin:clownware/clownware-rust-tools", + "metric": "skill_audit.portability", + "valueText": "Codex import and host hook behavior not evaluated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:product-dev:product-flow", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:product-dev:product-flow", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:product-dev:product-flow", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"bff7e06933ac4858bedaf918bd14c2374fcae67c\",\"sha256\":\"def6e397565747db072dde9074fde42a035f7a1809faab6fdb3ddf87e969611c\",\"source_path\":\"plugin/skills/product-flow/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:product-dev:product-flow", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:product-dev:product-flow", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:product-dev:product-ideation", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:product-dev:product-ideation", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:product-dev:product-ideation", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"bff7e06933ac4858bedaf918bd14c2374fcae67c\",\"sha256\":\"ba8dd54480368fec2073183ff195748c90cfcf095257b5696107270e38c96f3b\",\"source_path\":\"plugin/skills/product-ideation/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:product-dev:product-ideation", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:product-dev:product-ideation", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:product-dev:status", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:product-dev:status", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:product-dev:status", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"bff7e06933ac4858bedaf918bd14c2374fcae67c\",\"sha256\":\"9fad3c8f9a25355a16de5e1426c9262d3058caf91f19ff1ef1596c5063d494ae\",\"source_path\":\"plugin/skills/status/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:product-dev:status", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:product-dev:status", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:product-dev:tech-spec", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:product-dev:tech-spec", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:product-dev:tech-spec", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"bff7e06933ac4858bedaf918bd14c2374fcae67c\",\"sha256\":\"b5953bf4ed599ba0f4a073cc6bcd571b0dc7f6a7fbd1eb3b5f12eb12d2f405aa\",\"source_path\":\"plugin/skills/tech-spec/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:product-dev:tech-spec", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:product-dev:tech-spec", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:product-dev:ux-optimization", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "skill:product-dev:ux-optimization", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "skill:product-dev:ux-optimization", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"bff7e06933ac4858bedaf918bd14c2374fcae67c\",\"sha256\":\"8e7278e2e3e6d273def9dfe1f64f672430e286d627faea5b47200782bce61314\",\"source_path\":\"plugin/skills/ux-optimization/SKILL.md\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:product-dev:ux-optimization", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only; the 2026-09-05 baseline Codex sample was not repeated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "skill:product-dev:ux-optimization", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "plugin:clownware/product-dev", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 100 + }, + { + "entityId": "plugin:clownware/product-dev", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "valueNum": 0 + }, + { + "entityId": "plugin:clownware/product-dev", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05-post-fix\",\"rubric\":\"static-review-v1\",\"revision\":\"bff7e06933ac4858bedaf918bd14c2374fcae67c\",\"sha256\":\"6b732448a543fc6fa5d257ae002693502884179741b3245038143028a4f0cadb\",\"source_path\":\"plugin\",\"reviewer\":\"Claude Code session (Claude Fable 5.1); post-fix verification of the 2026-09-05 baseline by the same rubric; no new blind sample\",\"scope\":\"Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed. Post-fix: re-read in full at the release revision; probes re-run; reproductions re-executed where executable.\"}", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "plugin:clownware/product-dev", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end as an installed plugin", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + }, + { + "entityId": "plugin:clownware/product-dev", + "metric": "skill_audit.portability", + "valueText": "Codex import and host hook behavior not evaluated", + "severity": 0, + "observedAt": 1788624783, + "dedupeKey": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae" + } + ] +} diff --git a/docs/audits/2026-09-05-post-fix/plugin-validation.json b/docs/audits/2026-09-05-post-fix/plugin-validation.json new file mode 100644 index 0000000..daecbdb --- /dev/null +++ b/docs/audits/2026-09-05-post-fix/plugin-validation.json @@ -0,0 +1,32 @@ +[ + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools", + "exit": 0, + "output": "Validating plugin manifest: /Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/.claude-plugin/plugin.json\n\n\u2714 Validation passed\n" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools", + "exit": 0, + "output": "Validating plugin manifest: /Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/.claude-plugin/plugin.json\n\n\u2714 Validation passed\n" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools", + "exit": 0, + "output": "Validating plugin manifest: /Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/.claude-plugin/plugin.json\n\n\u2714 Validation passed\n" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/pezza-design-system", + "exit": 0, + "output": "Validating plugin manifest: /Users/chrispezza/Dev/clownware/plugins/plugins/pezza-design-system/.claude-plugin/plugin.json\n\n\u2714 Validation passed\n" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools", + "exit": 0, + "output": "Validating plugin manifest: /Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/.claude-plugin/plugin.json\n\n\u2714 Validation passed\n" + }, + { + "path": "/Users/chrispezza/Dev/clownware/product-dev/plugin", + "exit": 0, + "output": "Validating plugin manifest: /Users/chrispezza/Dev/clownware/product-dev/plugin/.claude-plugin/plugin.json\n\n\u2714 Validation passed\n" + } +] \ No newline at end of file diff --git a/docs/audits/2026-09-05-post-fix/probe-results.json b/docs/audits/2026-09-05-post-fix/probe-results.json new file mode 100644 index 0000000..97e625a --- /dev/null +++ b/docs/audits/2026-09-05-post-fix/probe-results.json @@ -0,0 +1,6431 @@ +{ + "summary": { + "skills": 33, + "prefetch_commands": 107, + "probe_runs": 642, + "passed": 642, + "failed": 0 + }, + "results": [ + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.04 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.06 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/astro-tools/skills/component-scaffold/SKILL.md", + "command": "out=$(find src/components -type f \\( -name \"*.astro\" -o -name \"*.tsx\" \\) 2>/dev/null | sort | head -40); echo \"${out:-no src/components directory found \u2014 check ", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/astro-tools/skills/component-scaffold/SKILL.md", + "command": "out=$(find src/components -type f \\( -name \"*.astro\" -o -name \"*.tsx\" \\) 2>/dev/null | sort | head -40); echo \"${out:-no src/components directory found \u2014 check ", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/astro-tools/skills/component-scaffold/SKILL.md", + "command": "out=$(find src/components -type f \\( -name \"*.astro\" -o -name \"*.tsx\" \\) 2>/dev/null | sort | head -40); echo \"${out:-no src/components directory found \u2014 check ", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/astro-tools/skills/component-scaffold/SKILL.md", + "command": "out=$(find src/components -type f \\( -name \"*.astro\" -o -name \"*.tsx\" \\) 2>/dev/null | sort | head -40); echo \"${out:-no src/components directory found \u2014 check ", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/astro-tools/skills/component-scaffold/SKILL.md", + "command": "out=$(find src/components -type f \\( -name \"*.astro\" -o -name \"*.tsx\" \\) 2>/dev/null | sort | head -40); echo \"${out:-no src/components directory found \u2014 check ", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/astro-tools/skills/component-scaffold/SKILL.md", + "command": "out=$(find src/components -type f \\( -name \"*.astro\" -o -name \"*.tsx\" \\) 2>/dev/null | sort | head -40); echo \"${out:-no src/components directory found \u2014 check ", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(ls budgets.json budget-overrides.json lighthouserc.json lighthouserc.mobile.json 2>/dev/null); echo \"${out:-none \u2014 this repo does not carry the starter bu", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(ls budgets.json budget-overrides.json lighthouserc.json lighthouserc.mobile.json 2>/dev/null); echo \"${out:-none \u2014 this repo does not carry the starter bu", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(ls budgets.json budget-overrides.json lighthouserc.json lighthouserc.mobile.json 2>/dev/null); echo \"${out:-none \u2014 this repo does not carry the starter bu", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(ls budgets.json budget-overrides.json lighthouserc.json lighthouserc.mobile.json 2>/dev/null); echo \"${out:-none \u2014 this repo does not carry the starter bu", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(ls budgets.json budget-overrides.json lighthouserc.json lighthouserc.mobile.json 2>/dev/null); echo \"${out:-none \u2014 this repo does not carry the starter bu", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(ls budgets.json budget-overrides.json lighthouserc.json lighthouserc.mobile.json 2>/dev/null); echo \"${out:-none \u2014 this repo does not carry the starter bu", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if k in ('perf:budgets','bu", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if k in ('perf:budgets','bu", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if k in ('perf:budgets','bu", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if k in ('perf:budgets','bu", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if k in ('perf:budgets','bu", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if k in ('perf:budgets','bu", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(ls -d dist 2>/dev/null && find dist -name \"*.js\" -path \"*_astro*\" 2>/dev/null | head -1 >/dev/null && echo \"dist/ present\"); echo \"${out:-no dist/ \u2014 a bui", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(ls -d dist 2>/dev/null && find dist -name \"*.js\" -path \"*_astro*\" 2>/dev/null | head -1 >/dev/null && echo \"dist/ present\"); echo \"${out:-no dist/ \u2014 a bui", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(ls -d dist 2>/dev/null && find dist -name \"*.js\" -path \"*_astro*\" 2>/dev/null | head -1 >/dev/null && echo \"dist/ present\"); echo \"${out:-no dist/ \u2014 a bui", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(ls -d dist 2>/dev/null && find dist -name \"*.js\" -path \"*_astro*\" 2>/dev/null | head -1 >/dev/null && echo \"dist/ present\"); echo \"${out:-no dist/ \u2014 a bui", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(ls -d dist 2>/dev/null && find dist -name \"*.js\" -path \"*_astro*\" 2>/dev/null | head -1 >/dev/null && echo \"dist/ present\"); echo \"${out:-no dist/ \u2014 a bui", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(ls -d dist 2>/dev/null && find dist -name \"*.js\" -path \"*_astro*\" 2>/dev/null | head -1 >/dev/null && echo \"dist/ present\"); echo \"${out:-no dist/ \u2014 a bui", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/a11y-audit/SKILL.md", + "command": "out=$(find . \\( -name \"*.html\" -o -name \"*.jsx\" -o -name \"*.tsx\" -o -name \"*.vue\" -o -name \"*.svelte\" -o -name \"*.astro\" -o -name \"*.templ\" \\) -not -path \"*/nod", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/a11y-audit/SKILL.md", + "command": "out=$(find . \\( -name \"*.html\" -o -name \"*.jsx\" -o -name \"*.tsx\" -o -name \"*.vue\" -o -name \"*.svelte\" -o -name \"*.astro\" -o -name \"*.templ\" \\) -not -path \"*/nod", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/a11y-audit/SKILL.md", + "command": "out=$(find . \\( -name \"*.html\" -o -name \"*.jsx\" -o -name \"*.tsx\" -o -name \"*.vue\" -o -name \"*.svelte\" -o -name \"*.astro\" -o -name \"*.templ\" \\) -not -path \"*/nod", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/a11y-audit/SKILL.md", + "command": "out=$(find . \\( -name \"*.html\" -o -name \"*.jsx\" -o -name \"*.tsx\" -o -name \"*.vue\" -o -name \"*.svelte\" -o -name \"*.astro\" -o -name \"*.templ\" \\) -not -path \"*/nod", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/a11y-audit/SKILL.md", + "command": "out=$(find . \\( -name \"*.html\" -o -name \"*.jsx\" -o -name \"*.tsx\" -o -name \"*.vue\" -o -name \"*.svelte\" -o -name \"*.astro\" -o -name \"*.templ\" \\) -not -path \"*/nod", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/a11y-audit/SKILL.md", + "command": "out=$(find . \\( -name \"*.html\" -o -name \"*.jsx\" -o -name \"*.tsx\" -o -name \"*.vue\" -o -name \"*.svelte\" -o -name \"*.astro\" -o -name \"*.templ\" \\) -not -path \"*/nod", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/a11y-audit/SKILL.md", + "command": "out=$(grep -lE '\"react\"|\"preact\"|\"vue\"|\"svelte\"' package.json 2>/dev/null; find . -maxdepth 2 -name \"*.jsx\" -o -maxdepth 2 -name \"*.vue\" 2>/dev/null | head -1);", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/a11y-audit/SKILL.md", + "command": "out=$(grep -lE '\"react\"|\"preact\"|\"vue\"|\"svelte\"' package.json 2>/dev/null; find . -maxdepth 2 -name \"*.jsx\" -o -maxdepth 2 -name \"*.vue\" 2>/dev/null | head -1);", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/a11y-audit/SKILL.md", + "command": "out=$(grep -lE '\"react\"|\"preact\"|\"vue\"|\"svelte\"' package.json 2>/dev/null; find . -maxdepth 2 -name \"*.jsx\" -o -maxdepth 2 -name \"*.vue\" 2>/dev/null | head -1);", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/a11y-audit/SKILL.md", + "command": "out=$(grep -lE '\"react\"|\"preact\"|\"vue\"|\"svelte\"' package.json 2>/dev/null; find . -maxdepth 2 -name \"*.jsx\" -o -maxdepth 2 -name \"*.vue\" 2>/dev/null | head -1);", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/a11y-audit/SKILL.md", + "command": "out=$(grep -lE '\"react\"|\"preact\"|\"vue\"|\"svelte\"' package.json 2>/dev/null; find . -maxdepth 2 -name \"*.jsx\" -o -maxdepth 2 -name \"*.vue\" 2>/dev/null | head -1);", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/a11y-audit/SKILL.md", + "command": "out=$(grep -lE '\"react\"|\"preact\"|\"vue\"|\"svelte\"' package.json 2>/dev/null; find . -maxdepth 2 -name \"*.jsx\" -o -maxdepth 2 -name \"*.vue\" 2>/dev/null | head -1);", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/a11y-audit/SKILL.md", + "command": "out=$(grep -rlE 'onClick|onclick=|@click|on:click' --include='*.html' --include='*.jsx' --include='*.tsx' --include='*.vue' --include='*.svelte' --include='*.as", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/a11y-audit/SKILL.md", + "command": "out=$(grep -rlE 'onClick|onclick=|@click|on:click' --include='*.html' --include='*.jsx' --include='*.tsx' --include='*.vue' --include='*.svelte' --include='*.as", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/code-tools/skills/a11y-audit/SKILL.md", + "command": "out=$(grep -rlE 'onClick|onclick=|@click|on:click' --include='*.html' --include='*.jsx' --include='*.tsx' --include='*.vue' --include='*.svelte' --include='*.as", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/a11y-audit/SKILL.md", + "command": "out=$(grep -rlE 'onClick|onclick=|@click|on:click' --include='*.html' --include='*.jsx' --include='*.tsx' --include='*.vue' --include='*.svelte' --include='*.as", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/a11y-audit/SKILL.md", + "command": "out=$(grep -rlE 'onClick|onclick=|@click|on:click' --include='*.html' --include='*.jsx' --include='*.tsx' --include='*.vue' --include='*.svelte' --include='*.as", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/code-tools/skills/a11y-audit/SKILL.md", + "command": "out=$(grep -rlE 'onClick|onclick=|@click|on:click' --include='*.html' --include='*.jsx' --include='*.tsx' --include='*.vue' --include='*.svelte' --include='*.as", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "out=$(ls docs/adr/ 2>/dev/null | grep -oE '^[0-9]+' | sort -n | tail -1); echo \"${out:-none}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "out=$(ls docs/adr/ 2>/dev/null | grep -oE '^[0-9]+' | sort -n | tail -1); echo \"${out:-none}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "out=$(ls docs/adr/ 2>/dev/null | grep -oE '^[0-9]+' | sort -n | tail -1); echo \"${out:-none}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "out=$(ls docs/adr/ 2>/dev/null | grep -oE '^[0-9]+' | sort -n | tail -1); echo \"${out:-none}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "out=$(ls docs/adr/ 2>/dev/null | grep -oE '^[0-9]+' | sort -n | tail -1); echo \"${out:-none}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "out=$(ls docs/adr/ 2>/dev/null | grep -oE '^[0-9]+' | sort -n | tail -1); echo \"${out:-none}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "test -f docs/adr/template.md && echo \"yes \u2014 read it before writing\" || echo \"no \u2014 use default format\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "test -f docs/adr/template.md && echo \"yes \u2014 read it before writing\" || echo \"no \u2014 use default format\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "test -f docs/adr/template.md && echo \"yes \u2014 read it before writing\" || echo \"no \u2014 use default format\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "test -f docs/adr/template.md && echo \"yes \u2014 read it before writing\" || echo \"no \u2014 use default format\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "test -f docs/adr/template.md && echo \"yes \u2014 read it before writing\" || echo \"no \u2014 use default format\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "test -f docs/adr/template.md && echo \"yes \u2014 read it before writing\" || echo \"no \u2014 use default format\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "out=$(ls docs/adr/ 2>/dev/null | grep '\\.md$' | grep -v template); echo \"${out:-no existing ADRs}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "out=$(ls docs/adr/ 2>/dev/null | grep '\\.md$' | grep -v template); echo \"${out:-no existing ADRs}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "out=$(ls docs/adr/ 2>/dev/null | grep '\\.md$' | grep -v template); echo \"${out:-no existing ADRs}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "out=$(ls docs/adr/ 2>/dev/null | grep '\\.md$' | grep -v template); echo \"${out:-no existing ADRs}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "out=$(ls docs/adr/ 2>/dev/null | grep '\\.md$' | grep -v template); echo \"${out:-no existing ADRs}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "out=$(ls docs/adr/ 2>/dev/null | grep '\\.md$' | grep -v template); echo \"${out:-no existing ADRs}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "test -d docs/adr && echo \"yes\" || echo \"no \u2014 create docs/adr/ first\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "test -d docs/adr && echo \"yes\" || echo \"no \u2014 create docs/adr/ first\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "test -d docs/adr && echo \"yes\" || echo \"no \u2014 create docs/adr/ first\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "test -d docs/adr && echo \"yes\" || echo \"no \u2014 create docs/adr/ first\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "test -d docs/adr && echo \"yes\" || echo \"no \u2014 create docs/adr/ first\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/adr/SKILL.md", + "command": "test -d docs/adr && echo \"yes\" || echo \"no \u2014 create docs/adr/ first\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "out=$(ls docs/adr/ docs/decisions/ adr/ 2>/dev/null | head -5); echo \"${out:-none found \u2014 infer decisions from configs, README, and code}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "out=$(ls docs/adr/ docs/decisions/ adr/ 2>/dev/null | head -5); echo \"${out:-none found \u2014 infer decisions from configs, README, and code}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "out=$(ls docs/adr/ docs/decisions/ adr/ 2>/dev/null | head -5); echo \"${out:-none found \u2014 infer decisions from configs, README, and code}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "out=$(ls docs/adr/ docs/decisions/ adr/ 2>/dev/null | head -5); echo \"${out:-none found \u2014 infer decisions from configs, README, and code}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "out=$(ls docs/adr/ docs/decisions/ adr/ 2>/dev/null | head -5); echo \"${out:-none found \u2014 infer decisions from configs, README, and code}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "out=$(ls docs/adr/ docs/decisions/ adr/ 2>/dev/null | head -5); echo \"${out:-none found \u2014 infer decisions from configs, README, and code}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "out=$(find . -maxdepth 2 \\( -iname \"roadmap*\" -o -path \"./docs/product/*\" -o -path \"./docs/updates/*\" \\) 2>/dev/null | head -5); echo \"${out:-none found}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "out=$(find . -maxdepth 2 \\( -iname \"roadmap*\" -o -path \"./docs/product/*\" -o -path \"./docs/updates/*\" \\) 2>/dev/null | head -5); echo \"${out:-none found}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "out=$(find . -maxdepth 2 \\( -iname \"roadmap*\" -o -path \"./docs/product/*\" -o -path \"./docs/updates/*\" \\) 2>/dev/null | head -5); echo \"${out:-none found}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "out=$(find . -maxdepth 2 \\( -iname \"roadmap*\" -o -path \"./docs/product/*\" -o -path \"./docs/updates/*\" \\) 2>/dev/null | head -5); echo \"${out:-none found}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "out=$(find . -maxdepth 2 \\( -iname \"roadmap*\" -o -path \"./docs/product/*\" -o -path \"./docs/updates/*\" \\) 2>/dev/null | head -5); echo \"${out:-none found}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "out=$(find . -maxdepth 2 \\( -iname \"roadmap*\" -o -path \"./docs/product/*\" -o -path \"./docs/updates/*\" \\) 2>/dev/null | head -5); echo \"${out:-none found}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "ls .github/workflows/ 2>/dev/null || echo \"none\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "ls .github/workflows/ 2>/dev/null || echo \"none\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "ls .github/workflows/ 2>/dev/null || echo \"none\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "ls .github/workflows/ 2>/dev/null || echo \"none\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "ls .github/workflows/ 2>/dev/null || echo \"none\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "ls .github/workflows/ 2>/dev/null || echo \"none\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none found}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none found}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none found}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none found}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none found}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none found}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "b=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|.*/||'); [ -n \"$b\" ] || b=$(git branch --show-current 2>/dev/null); echo \"${b:-unknown}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "b=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|.*/||'); [ -n \"$b\" ] || b=$(git branch --show-current 2>/dev/null); echo \"${b:-unknown}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "b=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|.*/||'); [ -n \"$b\" ] || b=$(git branch --show-current 2>/dev/null); echo \"${b:-unknown}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "b=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|.*/||'); [ -n \"$b\" ] || b=$(git branch --show-current 2>/dev/null); echo \"${b:-unknown}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "b=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|.*/||'); [ -n \"$b\" ] || b=$(git branch --show-current 2>/dev/null); echo \"${b:-unknown}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "b=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|.*/||'); [ -n \"$b\" ] || b=$(git branch --show-current 2>/dev/null); echo \"${b:-unknown}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "ls Dockerfile docker-compose.yml fly.toml render.yaml wrangler.toml vercel.json 2>/dev/null || echo \"none\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "ls Dockerfile docker-compose.yml fly.toml render.yaml wrangler.toml vercel.json 2>/dev/null || echo \"none\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "ls Dockerfile docker-compose.yml fly.toml render.yaml wrangler.toml vercel.json 2>/dev/null || echo \"none\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "ls Dockerfile docker-compose.yml fly.toml render.yaml wrangler.toml vercel.json 2>/dev/null || echo \"none\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "ls Dockerfile docker-compose.yml fly.toml render.yaml wrangler.toml vercel.json 2>/dev/null || echo \"none\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/arch-audit/SKILL.md", + "command": "ls Dockerfile docker-compose.yml fly.toml render.yaml wrangler.toml vercel.json 2>/dev/null || echo \"none\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/audit-fix/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo \u2014 fixes cannot be cleanly", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/audit-fix/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo \u2014 fixes cannot be cleanly", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/audit-fix/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo \u2014 fixes cannot be cleanly", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/audit-fix/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo \u2014 fixes cannot be cleanly", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/audit-fix/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo \u2014 fixes cannot be cleanly", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/audit-fix/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo \u2014 fixes cannot be cleanly", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/audit-fix/SKILL.md", + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached HEAD or not a git repo}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/audit-fix/SKILL.md", + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached HEAD or not a git repo}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/audit-fix/SKILL.md", + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached HEAD or not a git repo}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/audit-fix/SKILL.md", + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached HEAD or not a git repo}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/audit-fix/SKILL.md", + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached HEAD or not a git repo}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/audit-fix/SKILL.md", + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached HEAD or not a git repo}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/deps-audit/SKILL.md", + "command": "out=$(find . -maxdepth 3 \\( -name package.json -o -name pyproject.toml -o -name requirements.txt -o -name go.mod -o -name Cargo.toml -o -name Gemfile -o -name c", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/deps-audit/SKILL.md", + "command": "out=$(find . -maxdepth 3 \\( -name package.json -o -name pyproject.toml -o -name requirements.txt -o -name go.mod -o -name Cargo.toml -o -name Gemfile -o -name c", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/deps-audit/SKILL.md", + "command": "out=$(find . -maxdepth 3 \\( -name package.json -o -name pyproject.toml -o -name requirements.txt -o -name go.mod -o -name Cargo.toml -o -name Gemfile -o -name c", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/deps-audit/SKILL.md", + "command": "out=$(find . -maxdepth 3 \\( -name package.json -o -name pyproject.toml -o -name requirements.txt -o -name go.mod -o -name Cargo.toml -o -name Gemfile -o -name c", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/deps-audit/SKILL.md", + "command": "out=$(find . -maxdepth 3 \\( -name package.json -o -name pyproject.toml -o -name requirements.txt -o -name go.mod -o -name Cargo.toml -o -name Gemfile -o -name c", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/deps-audit/SKILL.md", + "command": "out=$(find . -maxdepth 3 \\( -name package.json -o -name pyproject.toml -o -name requirements.txt -o -name go.mod -o -name Cargo.toml -o -name Gemfile -o -name c", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/deps-audit/SKILL.md", + "command": "out=$(find . -maxdepth 3 \\( -name package-lock.json -o -name pnpm-lock.yaml -o -name yarn.lock -o -name bun.lockb -o -name poetry.lock -o -name uv.lock -o -name", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/deps-audit/SKILL.md", + "command": "out=$(find . -maxdepth 3 \\( -name package-lock.json -o -name pnpm-lock.yaml -o -name yarn.lock -o -name bun.lockb -o -name poetry.lock -o -name uv.lock -o -name", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/deps-audit/SKILL.md", + "command": "out=$(find . -maxdepth 3 \\( -name package-lock.json -o -name pnpm-lock.yaml -o -name yarn.lock -o -name bun.lockb -o -name poetry.lock -o -name uv.lock -o -name", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/deps-audit/SKILL.md", + "command": "out=$(find . -maxdepth 3 \\( -name package-lock.json -o -name pnpm-lock.yaml -o -name yarn.lock -o -name bun.lockb -o -name poetry.lock -o -name uv.lock -o -name", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/deps-audit/SKILL.md", + "command": "out=$(find . -maxdepth 3 \\( -name package-lock.json -o -name pnpm-lock.yaml -o -name yarn.lock -o -name bun.lockb -o -name poetry.lock -o -name uv.lock -o -name", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/deps-audit/SKILL.md", + "command": "out=$(find . -maxdepth 3 \\( -name package-lock.json -o -name pnpm-lock.yaml -o -name yarn.lock -o -name bun.lockb -o -name poetry.lock -o -name uv.lock -o -name", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/deps-audit/SKILL.md", + "command": "if curl -s -m 4 -o /dev/null -w \"%{http_code}\" https://registry.npmjs.org/ 2>/dev/null | grep -q \"200\"; then echo \"available \u2014 registry freshness + OSV advisori", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.11 + }, + { + "skill": "plugins/code-tools/skills/deps-audit/SKILL.md", + "command": "if curl -s -m 4 -o /dev/null -w \"%{http_code}\" https://registry.npmjs.org/ 2>/dev/null | grep -q \"200\"; then echo \"available \u2014 registry freshness + OSV advisori", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.1 + }, + { + "skill": "plugins/code-tools/skills/deps-audit/SKILL.md", + "command": "if curl -s -m 4 -o /dev/null -w \"%{http_code}\" https://registry.npmjs.org/ 2>/dev/null | grep -q \"200\"; then echo \"available \u2014 registry freshness + OSV advisori", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.1 + }, + { + "skill": "plugins/code-tools/skills/deps-audit/SKILL.md", + "command": "if curl -s -m 4 -o /dev/null -w \"%{http_code}\" https://registry.npmjs.org/ 2>/dev/null | grep -q \"200\"; then echo \"available \u2014 registry freshness + OSV advisori", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.1 + }, + { + "skill": "plugins/code-tools/skills/deps-audit/SKILL.md", + "command": "if curl -s -m 4 -o /dev/null -w \"%{http_code}\" https://registry.npmjs.org/ 2>/dev/null | grep -q \"200\"; then echo \"available \u2014 registry freshness + OSV advisori", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.1 + }, + { + "skill": "plugins/code-tools/skills/deps-audit/SKILL.md", + "command": "if curl -s -m 4 -o /dev/null -w \"%{http_code}\" https://registry.npmjs.org/ 2>/dev/null | grep -q \"200\"; then echo \"available \u2014 registry freshness + OSV advisori", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.11 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(grep -rl -- '--[a-zA-Z][a-zA-Z0-9-]*:' --include='*.css' . 2>/dev/null | grep -v node_modules | head -8); echo \"${out:-none found \u2014 look for SCSS/JS token", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(grep -rl -- '--[a-zA-Z][a-zA-Z0-9-]*:' --include='*.css' . 2>/dev/null | grep -v node_modules | head -8); echo \"${out:-none found \u2014 look for SCSS/JS token", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.27 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(grep -rl -- '--[a-zA-Z][a-zA-Z0-9-]*:' --include='*.css' . 2>/dev/null | grep -v node_modules | head -8); echo \"${out:-none found \u2014 look for SCSS/JS token", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(grep -rl -- '--[a-zA-Z][a-zA-Z0-9-]*:' --include='*.css' . 2>/dev/null | grep -v node_modules | head -8); echo \"${out:-none found \u2014 look for SCSS/JS token", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(grep -rl -- '--[a-zA-Z][a-zA-Z0-9-]*:' --include='*.css' . 2>/dev/null | grep -v node_modules | head -8); echo \"${out:-none found \u2014 look for SCSS/JS token", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.19 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(grep -rl -- '--[a-zA-Z][a-zA-Z0-9-]*:' --include='*.css' . 2>/dev/null | grep -v node_modules | head -8); echo \"${out:-none found \u2014 look for SCSS/JS token", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(find . -maxdepth 3 \\( -name \"base.json\" -o -name \"tokens.json\" -o -name \"design-tokens.json\" -o -name \"theme.json\" \\) -not -path \"*/node_modules/*\" 2>/dev", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(find . -maxdepth 3 \\( -name \"base.json\" -o -name \"tokens.json\" -o -name \"design-tokens.json\" -o -name \"theme.json\" \\) -not -path \"*/node_modules/*\" 2>/dev", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(find . -maxdepth 3 \\( -name \"base.json\" -o -name \"tokens.json\" -o -name \"design-tokens.json\" -o -name \"theme.json\" \\) -not -path \"*/node_modules/*\" 2>/dev", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(find . -maxdepth 3 \\( -name \"base.json\" -o -name \"tokens.json\" -o -name \"design-tokens.json\" -o -name \"theme.json\" \\) -not -path \"*/node_modules/*\" 2>/dev", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(find . -maxdepth 3 \\( -name \"base.json\" -o -name \"tokens.json\" -o -name \"design-tokens.json\" -o -name \"theme.json\" \\) -not -path \"*/node_modules/*\" 2>/dev", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(find . -maxdepth 3 \\( -name \"base.json\" -o -name \"tokens.json\" -o -name \"design-tokens.json\" -o -name \"theme.json\" \\) -not -path \"*/node_modules/*\" 2>/dev", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(ls SKILL.md readme.md README.md STYLE.md BRAND.md 2>/dev/null; find docs -maxdepth 2 -iname \"*brand*\" -o -iname \"*design*\" 2>/dev/null | head -3); echo \"$", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(ls SKILL.md readme.md README.md STYLE.md BRAND.md 2>/dev/null; find docs -maxdepth 2 -iname \"*brand*\" -o -iname \"*design*\" 2>/dev/null | head -3); echo \"$", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(ls SKILL.md readme.md README.md STYLE.md BRAND.md 2>/dev/null; find docs -maxdepth 2 -iname \"*brand*\" -o -iname \"*design*\" 2>/dev/null | head -3); echo \"$", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(ls SKILL.md readme.md README.md STYLE.md BRAND.md 2>/dev/null; find docs -maxdepth 2 -iname \"*brand*\" -o -iname \"*design*\" 2>/dev/null | head -3); echo \"$", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(ls SKILL.md readme.md README.md STYLE.md BRAND.md 2>/dev/null; find docs -maxdepth 2 -iname \"*brand*\" -o -iname \"*design*\" 2>/dev/null | head -3); echo \"$", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(ls SKILL.md readme.md README.md STYLE.md BRAND.md 2>/dev/null; find docs -maxdepth 2 -iname \"*brand*\" -o -iname \"*design*\" 2>/dev/null | head -3); echo \"$", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(grep -rlE 'data-theme|prefers-color-scheme|\\.dark\\b|\\.light\\b|\\.on-dark\\b' --include='*.css' . 2>/dev/null | grep -v node_modules | head -5); echo \"${out:", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(grep -rlE 'data-theme|prefers-color-scheme|\\.dark\\b|\\.light\\b|\\.on-dark\\b' --include='*.css' . 2>/dev/null | grep -v node_modules | head -5); echo \"${out:", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(grep -rlE 'data-theme|prefers-color-scheme|\\.dark\\b|\\.light\\b|\\.on-dark\\b' --include='*.css' . 2>/dev/null | grep -v node_modules | head -5); echo \"${out:", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(grep -rlE 'data-theme|prefers-color-scheme|\\.dark\\b|\\.light\\b|\\.on-dark\\b' --include='*.css' . 2>/dev/null | grep -v node_modules | head -5); echo \"${out:", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(grep -rlE 'data-theme|prefers-color-scheme|\\.dark\\b|\\.light\\b|\\.on-dark\\b' --include='*.css' . 2>/dev/null | grep -v node_modules | head -5); echo \"${out:", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(grep -rlE 'data-theme|prefers-color-scheme|\\.dark\\b|\\.light\\b|\\.on-dark\\b' --include='*.css' . 2>/dev/null | grep -v node_modules | head -5); echo \"${out:", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(find . \\( -name \"*.card.html\" -o -name \"*.stories.*\" -o -iname \"*specimen*\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -8); echo \"${out:-none fou", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(find . \\( -name \"*.card.html\" -o -name \"*.stories.*\" -o -iname \"*specimen*\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -8); echo \"${out:-none fou", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(find . \\( -name \"*.card.html\" -o -name \"*.stories.*\" -o -iname \"*specimen*\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -8); echo \"${out:-none fou", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(find . \\( -name \"*.card.html\" -o -name \"*.stories.*\" -o -iname \"*specimen*\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -8); echo \"${out:-none fou", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(find . \\( -name \"*.card.html\" -o -name \"*.stories.*\" -o -iname \"*specimen*\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -8); echo \"${out:-none fou", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/design-audit/SKILL.md", + "command": "out=$(find . \\( -name \"*.card.html\" -o -name \"*.stories.*\" -o -iname \"*specimen*\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -8); echo \"${out:-none fou", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$(find .github/workflows -maxdepth 1 \\( -name \"*.yml\" -o -name \"*.yaml\" \\) 2>/dev/null | head -12); echo \"${out:-none found \u2014 no CI surface; if deploy confi", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$(find .github/workflows -maxdepth 1 \\( -name \"*.yml\" -o -name \"*.yaml\" \\) 2>/dev/null | head -12); echo \"${out:-none found \u2014 no CI surface; if deploy confi", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$(find .github/workflows -maxdepth 1 \\( -name \"*.yml\" -o -name \"*.yaml\" \\) 2>/dev/null | head -12); echo \"${out:-none found \u2014 no CI surface; if deploy confi", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$(find .github/workflows -maxdepth 1 \\( -name \"*.yml\" -o -name \"*.yaml\" \\) 2>/dev/null | head -12); echo \"${out:-none found \u2014 no CI surface; if deploy confi", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$(find .github/workflows -maxdepth 1 \\( -name \"*.yml\" -o -name \"*.yaml\" \\) 2>/dev/null | head -12); echo \"${out:-none found \u2014 no CI surface; if deploy confi", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$(find .github/workflows -maxdepth 1 \\( -name \"*.yml\" -o -name \"*.yaml\" \\) 2>/dev/null | head -12); echo \"${out:-none found \u2014 no CI surface; if deploy confi", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$(find . -maxdepth 2 \\( -name \"Dockerfile*\" -o -name \"docker-compose*.yml\" -o -name \"wrangler.toml\" -o -name \"wrangler.jsonc\" -o -name \"fly.toml\" -o -name \"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$(find . -maxdepth 2 \\( -name \"Dockerfile*\" -o -name \"docker-compose*.yml\" -o -name \"wrangler.toml\" -o -name \"wrangler.jsonc\" -o -name \"fly.toml\" -o -name \"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$(find . -maxdepth 2 \\( -name \"Dockerfile*\" -o -name \"docker-compose*.yml\" -o -name \"wrangler.toml\" -o -name \"wrangler.jsonc\" -o -name \"fly.toml\" -o -name \"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$(find . -maxdepth 2 \\( -name \"Dockerfile*\" -o -name \"docker-compose*.yml\" -o -name \"wrangler.toml\" -o -name \"wrangler.jsonc\" -o -name \"fly.toml\" -o -name \"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$(find . -maxdepth 2 \\( -name \"Dockerfile*\" -o -name \"docker-compose*.yml\" -o -name \"wrangler.toml\" -o -name \"wrangler.jsonc\" -o -name \"fly.toml\" -o -name \"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$(find . -maxdepth 2 \\( -name \"Dockerfile*\" -o -name \"docker-compose*.yml\" -o -name \"wrangler.toml\" -o -name \"wrangler.jsonc\" -o -name \"fly.toml\" -o -name \"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$(ls .github/dependabot.yml .github/dependabot.yaml renovate.json .github/renovate.json 2>/dev/null | head -2); echo \"${out:-none \u2014 no dependency-update aut", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$(ls .github/dependabot.yml .github/dependabot.yaml renovate.json .github/renovate.json 2>/dev/null | head -2); echo \"${out:-none \u2014 no dependency-update aut", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$(ls .github/dependabot.yml .github/dependabot.yaml renovate.json .github/renovate.json 2>/dev/null | head -2); echo \"${out:-none \u2014 no dependency-update aut", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$(ls .github/dependabot.yml .github/dependabot.yaml renovate.json .github/renovate.json 2>/dev/null | head -2); echo \"${out:-none \u2014 no dependency-update aut", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$(ls .github/dependabot.yml .github/dependabot.yaml renovate.json .github/renovate.json 2>/dev/null | head -2); echo \"${out:-none \u2014 no dependency-update aut", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$(ls .github/dependabot.yml .github/dependabot.yaml renovate.json .github/renovate.json 2>/dev/null | head -2); echo \"${out:-none \u2014 no dependency-update aut", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$({ [ -d .husky ] && echo \".husky/ present\"; ls Taskfile.yml Makefile 2>/dev/null; grep -oE \"\\\"(quality|ci|check)[^\\\"]*\\\"[[:space:]]*:\" package.json 2>/dev/", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$({ [ -d .husky ] && echo \".husky/ present\"; ls Taskfile.yml Makefile 2>/dev/null; grep -oE \"\\\"(quality|ci|check)[^\\\"]*\\\"[[:space:]]*:\" package.json 2>/dev/", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$({ [ -d .husky ] && echo \".husky/ present\"; ls Taskfile.yml Makefile 2>/dev/null; grep -oE \"\\\"(quality|ci|check)[^\\\"]*\\\"[[:space:]]*:\" package.json 2>/dev/", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$({ [ -d .husky ] && echo \".husky/ present\"; ls Taskfile.yml Makefile 2>/dev/null; grep -oE \"\\\"(quality|ci|check)[^\\\"]*\\\"[[:space:]]*:\" package.json 2>/dev/", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$({ [ -d .husky ] && echo \".husky/ present\"; ls Taskfile.yml Makefile 2>/dev/null; grep -oE \"\\\"(quality|ci|check)[^\\\"]*\\\"[[:space:]]*:\" package.json 2>/dev/", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/devops-audit/SKILL.md", + "command": "out=$({ [ -d .husky ] && echo \".husky/ present\"; ls Taskfile.yml Makefile 2>/dev/null; grep -oE \"\\\"(quality|ci|check)[^\\\"]*\\\"[[:space:]]*:\" package.json 2>/dev/", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(find . -maxdepth 2 \\( -name \"budgets*.json\" -o -name \"lighthouserc*\" -o -name \".size-limit*\" -o -name \"bundlesize*\" -o -name \"*.budget.*\" \\) -not -path \"*", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(find . -maxdepth 2 \\( -name \"budgets*.json\" -o -name \"lighthouserc*\" -o -name \".size-limit*\" -o -name \"bundlesize*\" -o -name \"*.budget.*\" \\) -not -path \"*", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(find . -maxdepth 2 \\( -name \"budgets*.json\" -o -name \"lighthouserc*\" -o -name \".size-limit*\" -o -name \"bundlesize*\" -o -name \"*.budget.*\" \\) -not -path \"*", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(find . -maxdepth 2 \\( -name \"budgets*.json\" -o -name \"lighthouserc*\" -o -name \".size-limit*\" -o -name \"bundlesize*\" -o -name \"*.budget.*\" \\) -not -path \"*", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(find . -maxdepth 2 \\( -name \"budgets*.json\" -o -name \"lighthouserc*\" -o -name \".size-limit*\" -o -name \"bundlesize*\" -o -name \"*.budget.*\" \\) -not -path \"*", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(find . -maxdepth 2 \\( -name \"budgets*.json\" -o -name \"lighthouserc*\" -o -name \".size-limit*\" -o -name \"bundlesize*\" -o -name \"*.budget.*\" \\) -not -path \"*", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if any(w in k.lower() or w ", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if any(w in k.lower() or w ", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if any(w in k.lower() or w ", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if any(w in k.lower() or w ", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if any(w in k.lower() or w ", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if any(w in k.lower() or w ", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(ls -d dist build .next out public 2>/dev/null | head -3); echo \"${out:-no build output on disk \u2014 size checks need a build or are skipped (say which)}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(ls -d dist build .next out public 2>/dev/null | head -3); echo \"${out:-no build output on disk \u2014 size checks need a build or are skipped (say which)}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(ls -d dist build .next out public 2>/dev/null | head -3); echo \"${out:-no build output on disk \u2014 size checks need a build or are skipped (say which)}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(ls -d dist build .next out public 2>/dev/null | head -3); echo \"${out:-no build output on disk \u2014 size checks need a build or are skipped (say which)}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(ls -d dist build .next out public 2>/dev/null | head -3); echo \"${out:-no build output on disk \u2014 size checks need a build or are skipped (say which)}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(ls -d dist build .next out public 2>/dev/null | head -3); echo \"${out:-no build output on disk \u2014 size checks need a build or are skipped (say which)}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(ls .github/workflows/ 2>/dev/null | head -6); echo \"${out:-none}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(ls .github/workflows/ 2>/dev/null | head -6); echo \"${out:-none}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(ls .github/workflows/ 2>/dev/null | head -6); echo \"${out:-none}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(ls .github/workflows/ 2>/dev/null | head -6); echo \"${out:-none}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(ls .github/workflows/ 2>/dev/null | head -6); echo \"${out:-none}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/perf-audit/SKILL.md", + "command": "out=$(ls .github/workflows/ 2>/dev/null | head -6); echo \"${out:-none}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none \u2014 not a marketplace repo; this skill releases in-repo marketplace plugins only}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none \u2014 not a marketplace repo; this skill releases in-repo marketplace plugins only}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none \u2014 not a marketplace repo; this skill releases in-repo marketplace plugins only}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none \u2014 not a marketplace repo; this skill releases in-repo marketplace plugins only}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none \u2014 not a marketplace repo; this skill releases in-repo marketplace plugins only}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none \u2014 not a marketplace repo; this skill releases in-repo marketplace plugins only}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "out=$(find plugins -maxdepth 3 -name plugin.json -path \"*/.claude-plugin/*\" 2>/dev/null | sort | while read -r p; do python3 -c \"import json,sys; d=json.load(op", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "out=$(find plugins -maxdepth 3 -name plugin.json -path \"*/.claude-plugin/*\" 2>/dev/null | sort | while read -r p; do python3 -c \"import json,sys; d=json.load(op", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.09 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "out=$(find plugins -maxdepth 3 -name plugin.json -path \"*/.claude-plugin/*\" 2>/dev/null | sort | while read -r p; do python3 -c \"import json,sys; d=json.load(op", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "out=$(find plugins -maxdepth 3 -name plugin.json -path \"*/.claude-plugin/*\" 2>/dev/null | sort | while read -r p; do python3 -c \"import json,sys; d=json.load(op", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "out=$(find plugins -maxdepth 3 -name plugin.json -path \"*/.claude-plugin/*\" 2>/dev/null | sort | while read -r p; do python3 -c \"import json,sys; d=json.load(op", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.11 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "out=$(find plugins -maxdepth 3 -name plugin.json -path \"*/.claude-plugin/*\" 2>/dev/null | sort | while read -r p; do python3 -c \"import json,sys; d=json.load(op", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo\"; fi", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo\"; fi", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo\"; fi", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo\"; fi", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo\"; fi", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo\"; fi", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "out=$(git log @{u}..HEAD --oneline 2>/dev/null | head -5); echo \"${out:-none (or no upstream)}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "out=$(git log @{u}..HEAD --oneline 2>/dev/null | head -5); echo \"${out:-none (or no upstream)}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "out=$(git log @{u}..HEAD --oneline 2>/dev/null | head -5); echo \"${out:-none (or no upstream)}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "out=$(git log @{u}..HEAD --oneline 2>/dev/null | head -5); echo \"${out:-none (or no upstream)}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "out=$(git log @{u}..HEAD --oneline 2>/dev/null | head -5); echo \"${out:-none (or no upstream)}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/plugin-release/SKILL.md", + "command": "out=$(git log @{u}..HEAD --oneline 2>/dev/null | head -5); echo \"${out:-none (or no upstream)}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); ou", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.06 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.04 + }, + { + "skill": "plugins/code-tools/skills/pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "node --version 2>/dev/null || echo \"not found\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "node --version 2>/dev/null || echo \"not found\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "node --version 2>/dev/null || echo \"not found\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "node --version 2>/dev/null || echo \"not found\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "node --version 2>/dev/null || echo \"not found\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "node --version 2>/dev/null || echo \"not found\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "(which pnpm > /dev/null 2>&1 && echo \"pnpm $(pnpm --version)\") || (which npm > /dev/null 2>&1 && echo \"npm $(npm --version)\") || echo \"none found\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.14 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "(which pnpm > /dev/null 2>&1 && echo \"pnpm $(pnpm --version)\") || (which npm > /dev/null 2>&1 && echo \"npm $(npm --version)\") || echo \"none found\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.13 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "(which pnpm > /dev/null 2>&1 && echo \"pnpm $(pnpm --version)\") || (which npm > /dev/null 2>&1 && echo \"npm $(npm --version)\") || echo \"none found\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.13 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "(which pnpm > /dev/null 2>&1 && echo \"pnpm $(pnpm --version)\") || (which npm > /dev/null 2>&1 && echo \"npm $(npm --version)\") || echo \"none found\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.13 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "(which pnpm > /dev/null 2>&1 && echo \"pnpm $(pnpm --version)\") || (which npm > /dev/null 2>&1 && echo \"npm $(npm --version)\") || echo \"none found\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.13 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "(which pnpm > /dev/null 2>&1 && echo \"pnpm $(pnpm --version)\") || (which npm > /dev/null 2>&1 && echo \"npm $(npm --version)\") || echo \"none found\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.13 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "uname -s", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "uname -s", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "uname -s", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "uname -s", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "uname -s", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "uname -s", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "uname -m", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "uname -m", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "uname -m", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "uname -m", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "uname -m", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "uname -m", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -20); echo \"${out:-clean working tree}\"; else echo \"not a git repo\"; fi", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -20); echo \"${out:-clean working tree}\"; else echo \"not a git repo\"; fi", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -20); echo \"${out:-clean working tree}\"; else echo \"not a git repo\"; fi", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -20); echo \"${out:-clean working tree}\"; else echo \"not a git repo\"; fi", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -20); echo \"${out:-clean working tree}\"; else echo \"not a git repo\"; fi", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -20); echo \"${out:-clean working tree}\"; else echo \"not a git repo\"; fi", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "git log --oneline -5 2>/dev/null || echo \"no git history\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "git log --oneline -5 2>/dev/null || echo \"no git history\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "git log --oneline -5 2>/dev/null || echo \"no git history\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "git log --oneline -5 2>/dev/null || echo \"no git history\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "git log --oneline -5 2>/dev/null || echo \"no git history\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "command": "git log --oneline -5 2>/dev/null || echo \"no git history\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(ls go.mod package.json pyproject.toml requirements.txt Cargo.toml pom.xml build.gradle Gemfile composer.json 2>/dev/null); echo \"${out:-unrecognized \u2014 inf", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(ls go.mod package.json pyproject.toml requirements.txt Cargo.toml pom.xml build.gradle Gemfile composer.json 2>/dev/null); echo \"${out:-unrecognized \u2014 inf", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(ls go.mod package.json pyproject.toml requirements.txt Cargo.toml pom.xml build.gradle Gemfile composer.json 2>/dev/null); echo \"${out:-unrecognized \u2014 inf", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(ls go.mod package.json pyproject.toml requirements.txt Cargo.toml pom.xml build.gradle Gemfile composer.json 2>/dev/null); echo \"${out:-unrecognized \u2014 inf", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(ls go.mod package.json pyproject.toml requirements.txt Cargo.toml pom.xml build.gradle Gemfile composer.json 2>/dev/null); echo \"${out:-unrecognized \u2014 inf", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(ls go.mod package.json pyproject.toml requirements.txt Cargo.toml pom.xml build.gradle Gemfile composer.json 2>/dev/null); echo \"${out:-unrecognized \u2014 inf", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(command -v govulncheck npm pip-audit cargo-audit osv-scanner trivy snyk bundler-audit 2>/dev/null); echo \"${out:-none on PATH \u2014 audit deps by reading lock", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(command -v govulncheck npm pip-audit cargo-audit osv-scanner trivy snyk bundler-audit 2>/dev/null); echo \"${out:-none on PATH \u2014 audit deps by reading lock", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(command -v govulncheck npm pip-audit cargo-audit osv-scanner trivy snyk bundler-audit 2>/dev/null); echo \"${out:-none on PATH \u2014 audit deps by reading lock", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(command -v govulncheck npm pip-audit cargo-audit osv-scanner trivy snyk bundler-audit 2>/dev/null); echo \"${out:-none on PATH \u2014 audit deps by reading lock", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(command -v govulncheck npm pip-audit cargo-audit osv-scanner trivy snyk bundler-audit 2>/dev/null); echo \"${out:-none on PATH \u2014 audit deps by reading lock", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(command -v govulncheck npm pip-audit cargo-audit osv-scanner trivy snyk bundler-audit 2>/dev/null); echo \"${out:-none on PATH \u2014 audit deps by reading lock", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(rg -l -i \"cookie|jwt|session|password|csrf|oauth|bcrypt|crypto/rand|subtle\\.|SetCookie|Authorization\" --iglob '!*_test.*' --iglob '!node_modules' 2>/dev/n", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(rg -l -i \"cookie|jwt|session|password|csrf|oauth|bcrypt|crypto/rand|subtle\\.|SetCookie|Authorization\" --iglob '!*_test.*' --iglob '!node_modules' 2>/dev/n", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(rg -l -i \"cookie|jwt|session|password|csrf|oauth|bcrypt|crypto/rand|subtle\\.|SetCookie|Authorization\" --iglob '!*_test.*' --iglob '!node_modules' 2>/dev/n", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(rg -l -i \"cookie|jwt|session|password|csrf|oauth|bcrypt|crypto/rand|subtle\\.|SetCookie|Authorization\" --iglob '!*_test.*' --iglob '!node_modules' 2>/dev/n", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(rg -l -i \"cookie|jwt|session|password|csrf|oauth|bcrypt|crypto/rand|subtle\\.|SetCookie|Authorization\" --iglob '!*_test.*' --iglob '!node_modules' 2>/dev/n", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(rg -l -i \"cookie|jwt|session|password|csrf|oauth|bcrypt|crypto/rand|subtle\\.|SetCookie|Authorization\" --iglob '!*_test.*' --iglob '!node_modules' 2>/dev/n", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(rg -l -i \"threat model|security|owasp|rls|csrf|xss\" docs/ CLAUDE.md CONTRIBUTING.md SECURITY.md 2>/dev/null | head -8); echo \"${out:-none found \u2014 no writt", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(rg -l -i \"threat model|security|owasp|rls|csrf|xss\" docs/ CLAUDE.md CONTRIBUTING.md SECURITY.md 2>/dev/null | head -8); echo \"${out:-none found \u2014 no writt", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(rg -l -i \"threat model|security|owasp|rls|csrf|xss\" docs/ CLAUDE.md CONTRIBUTING.md SECURITY.md 2>/dev/null | head -8); echo \"${out:-none found \u2014 no writt", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(rg -l -i \"threat model|security|owasp|rls|csrf|xss\" docs/ CLAUDE.md CONTRIBUTING.md SECURITY.md 2>/dev/null | head -8); echo \"${out:-none found \u2014 no writt", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(rg -l -i \"threat model|security|owasp|rls|csrf|xss\" docs/ CLAUDE.md CONTRIBUTING.md SECURITY.md 2>/dev/null | head -8); echo \"${out:-none found \u2014 no writt", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(rg -l -i \"threat model|security|owasp|rls|csrf|xss\" docs/ CLAUDE.md CONTRIBUTING.md SECURITY.md 2>/dev/null | head -8); echo \"${out:-none found \u2014 no writt", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(ls .env .env.example .env.local docker-compose.yml Dockerfile 2>/dev/null; ls .github/workflows/ 2>/dev/null); echo \"${out:-none}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(ls .env .env.example .env.local docker-compose.yml Dockerfile 2>/dev/null; ls .github/workflows/ 2>/dev/null); echo \"${out:-none}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(ls .env .env.example .env.local docker-compose.yml Dockerfile 2>/dev/null; ls .github/workflows/ 2>/dev/null); echo \"${out:-none}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(ls .env .env.example .env.local docker-compose.yml Dockerfile 2>/dev/null; ls .github/workflows/ 2>/dev/null); echo \"${out:-none}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(ls .env .env.example .env.local docker-compose.yml Dockerfile 2>/dev/null; ls .github/workflows/ 2>/dev/null); echo \"${out:-none}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(ls .env .env.example .env.local docker-compose.yml Dockerfile 2>/dev/null; ls .github/workflows/ 2>/dev/null); echo \"${out:-none}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(git log --all --diff-filter=A --name-only --format= -- '*.env' '.env*' '*.pem' '*.key' '*_rsa' 2>/dev/null | grep -v '\\.env\\.example$' | sort -u | head); ", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(git log --all --diff-filter=A --name-only --format= -- '*.env' '.env*' '*.pem' '*.key' '*_rsa' 2>/dev/null | grep -v '\\.env\\.example$' | sort -u | head); ", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(git log --all --diff-filter=A --name-only --format= -- '*.env' '.env*' '*.pem' '*.key' '*_rsa' 2>/dev/null | grep -v '\\.env\\.example$' | sort -u | head); ", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(git log --all --diff-filter=A --name-only --format= -- '*.env' '.env*' '*.pem' '*.key' '*_rsa' 2>/dev/null | grep -v '\\.env\\.example$' | sort -u | head); ", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(git log --all --diff-filter=A --name-only --format= -- '*.env' '.env*' '*.pem' '*.key' '*_rsa' 2>/dev/null | grep -v '\\.env\\.example$' | sort -u | head); ", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(git log --all --diff-filter=A --name-only --format= -- '*.env' '.env*' '*.pem' '*.key' '*_rsa' 2>/dev/null | grep -v '\\.env\\.example$' | sort -u | head); ", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(present=$(find . -maxdepth 1 -type f \\( -name \".env\" -o -name \".env.*\" \\) ! -name \"*.example\" ! -name \"*.tpl\" ! -name \"*.sample\" ! -name \"*.template\" 2>/d", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(present=$(find . -maxdepth 1 -type f \\( -name \".env\" -o -name \".env.*\" \\) ! -name \"*.example\" ! -name \"*.tpl\" ! -name \"*.sample\" ! -name \"*.template\" 2>/d", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(present=$(find . -maxdepth 1 -type f \\( -name \".env\" -o -name \".env.*\" \\) ! -name \"*.example\" ! -name \"*.tpl\" ! -name \"*.sample\" ! -name \"*.template\" 2>/d", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(present=$(find . -maxdepth 1 -type f \\( -name \".env\" -o -name \".env.*\" \\) ! -name \"*.example\" ! -name \"*.tpl\" ! -name \"*.sample\" ! -name \"*.template\" 2>/d", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(present=$(find . -maxdepth 1 -type f \\( -name \".env\" -o -name \".env.*\" \\) ! -name \"*.example\" ! -name \"*.tpl\" ! -name \"*.sample\" ! -name \"*.template\" 2>/d", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(present=$(find . -maxdepth 1 -type f \\( -name \".env\" -o -name \".env.*\" \\) ! -name \"*.example\" ! -name \"*.tpl\" ! -name \"*.sample\" ! -name \"*.template\" 2>/d", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(rg -l -i \"op run|op://|op inject|sops|vault kv|doppler|aws secretsmanager|gcp secret|azure keyvault|1password\" .env.tpl .env.example Taskfile.yml Makefile", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(rg -l -i \"op run|op://|op inject|sops|vault kv|doppler|aws secretsmanager|gcp secret|azure keyvault|1password\" .env.tpl .env.example Taskfile.yml Makefile", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(rg -l -i \"op run|op://|op inject|sops|vault kv|doppler|aws secretsmanager|gcp secret|azure keyvault|1password\" .env.tpl .env.example Taskfile.yml Makefile", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(rg -l -i \"op run|op://|op inject|sops|vault kv|doppler|aws secretsmanager|gcp secret|azure keyvault|1password\" .env.tpl .env.example Taskfile.yml Makefile", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(rg -l -i \"op run|op://|op inject|sops|vault kv|doppler|aws secretsmanager|gcp secret|azure keyvault|1password\" .env.tpl .env.example Taskfile.yml Makefile", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/security-audit/SKILL.md", + "command": "out=$(rg -l -i \"op run|op://|op inject|sops|vault kv|doppler|aws secretsmanager|gcp secret|azure keyvault|1password\" .env.tpl .env.example Taskfile.yml Makefile", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/skill-audit/SKILL.md", + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | sort); echo \"${out:-none found \u2014 nothing to audit; tell the user a", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/skill-audit/SKILL.md", + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | sort); echo \"${out:-none found \u2014 nothing to audit; tell the user a", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/skill-audit/SKILL.md", + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | sort); echo \"${out:-none found \u2014 nothing to audit; tell the user a", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/skill-audit/SKILL.md", + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | sort); echo \"${out:-none found \u2014 nothing to audit; tell the user a", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/skill-audit/SKILL.md", + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | sort); echo \"${out:-none found \u2014 nothing to audit; tell the user a", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/skill-audit/SKILL.md", + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | sort); echo \"${out:-none found \u2014 nothing to audit; tell the user a", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/skill-audit/SKILL.md", + "command": "out=$(find . -name plugin.json -path \"*/.claude-plugin/*\" -not -path \"*/node_modules/*\" 2>/dev/null | sort); echo \"${out:-none}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/skill-audit/SKILL.md", + "command": "out=$(find . -name plugin.json -path \"*/.claude-plugin/*\" -not -path \"*/node_modules/*\" 2>/dev/null | sort); echo \"${out:-none}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/skill-audit/SKILL.md", + "command": "out=$(find . -name plugin.json -path \"*/.claude-plugin/*\" -not -path \"*/node_modules/*\" 2>/dev/null | sort); echo \"${out:-none}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/skill-audit/SKILL.md", + "command": "out=$(find . -name plugin.json -path \"*/.claude-plugin/*\" -not -path \"*/node_modules/*\" 2>/dev/null | sort); echo \"${out:-none}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/skill-audit/SKILL.md", + "command": "out=$(find . -name plugin.json -path \"*/.claude-plugin/*\" -not -path \"*/node_modules/*\" 2>/dev/null | sort); echo \"${out:-none}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/skill-audit/SKILL.md", + "command": "out=$(find . -name plugin.json -path \"*/.claude-plugin/*\" -not -path \"*/node_modules/*\" 2>/dev/null | sort); echo \"${out:-none}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/skill-audit/SKILL.md", + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/skill-audit/SKILL.md", + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/skill-audit/SKILL.md", + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/skill-audit/SKILL.md", + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/skill-audit/SKILL.md", + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/skill-audit/SKILL.md", + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/skill-validate/SKILL.md", + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none found \u2014 name the skill by absolute pat", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/skill-validate/SKILL.md", + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none found \u2014 name the skill by absolute pat", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/skill-validate/SKILL.md", + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none found \u2014 name the skill by absolute pat", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/skill-validate/SKILL.md", + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none found \u2014 name the skill by absolute pat", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/skill-validate/SKILL.md", + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none found \u2014 name the skill by absolute pat", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/skill-validate/SKILL.md", + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none found \u2014 name the skill by absolute pat", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/skill-validate/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then echo \"git repo \u2014 historical ground truth via worktrees available\"; else echo \"not a git repo \u2014 fixture-based gr", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/skill-validate/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then echo \"git repo \u2014 historical ground truth via worktrees available\"; else echo \"not a git repo \u2014 fixture-based gr", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/skill-validate/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then echo \"git repo \u2014 historical ground truth via worktrees available\"; else echo \"not a git repo \u2014 fixture-based gr", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/skill-validate/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then echo \"git repo \u2014 historical ground truth via worktrees available\"; else echo \"not a git repo \u2014 fixture-based gr", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/skill-validate/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then echo \"git repo \u2014 historical ground truth via worktrees available\"; else echo \"not a git repo \u2014 fixture-based gr", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/skill-validate/SKILL.md", + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then echo \"git repo \u2014 historical ground truth via worktrees available\"; else echo \"not a git repo \u2014 fixture-based gr", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls go.mod package.json pyproject.toml setup.py Cargo.toml pom.xml build.gradle Gemfile mix.exs 2>/dev/null); echo \"${out:-unrecognized \u2014 infer from source", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls go.mod package.json pyproject.toml setup.py Cargo.toml pom.xml build.gradle Gemfile mix.exs 2>/dev/null); echo \"${out:-unrecognized \u2014 infer from source", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls go.mod package.json pyproject.toml setup.py Cargo.toml pom.xml build.gradle Gemfile mix.exs 2>/dev/null); echo \"${out:-unrecognized \u2014 infer from source", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls go.mod package.json pyproject.toml setup.py Cargo.toml pom.xml build.gradle Gemfile mix.exs 2>/dev/null); echo \"${out:-unrecognized \u2014 infer from source", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls go.mod package.json pyproject.toml setup.py Cargo.toml pom.xml build.gradle Gemfile mix.exs 2>/dev/null); echo \"${out:-unrecognized \u2014 infer from source", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls go.mod package.json pyproject.toml setup.py Cargo.toml pom.xml build.gradle Gemfile mix.exs 2>/dev/null); echo \"${out:-unrecognized \u2014 infer from source", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(find . \\( -name \"*_test.go\" -o -name \"*.test.*\" -o -name \"*.spec.*\" -o -name \"test_*.py\" -o -name \"*_test.py\" -o -name \"*_spec.rb\" -o -name \"*Test.java\" \\", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(find . \\( -name \"*_test.go\" -o -name \"*.test.*\" -o -name \"*.spec.*\" -o -name \"test_*.py\" -o -name \"*_test.py\" -o -name \"*_spec.rb\" -o -name \"*Test.java\" \\", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(find . \\( -name \"*_test.go\" -o -name \"*.test.*\" -o -name \"*.spec.*\" -o -name \"test_*.py\" -o -name \"*_test.py\" -o -name \"*_spec.rb\" -o -name \"*Test.java\" \\", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(find . \\( -name \"*_test.go\" -o -name \"*.test.*\" -o -name \"*.spec.*\" -o -name \"test_*.py\" -o -name \"*_test.py\" -o -name \"*_spec.rb\" -o -name \"*Test.java\" \\", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(find . \\( -name \"*_test.go\" -o -name \"*.test.*\" -o -name \"*.spec.*\" -o -name \"test_*.py\" -o -name \"*_test.py\" -o -name \"*_spec.rb\" -o -name \"*Test.java\" \\", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(find . \\( -name \"*_test.go\" -o -name \"*.test.*\" -o -name \"*.spec.*\" -o -name \"test_*.py\" -o -name \"*_test.py\" -o -name \"*_spec.rb\" -o -name \"*Test.java\" \\", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls .github/workflows/ .gitlab-ci.yml .circleci/config.yml Jenkinsfile 2>/dev/null); echo \"${out:-none found}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls .github/workflows/ .gitlab-ci.yml .circleci/config.yml Jenkinsfile 2>/dev/null); echo \"${out:-none found}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls .github/workflows/ .gitlab-ci.yml .circleci/config.yml Jenkinsfile 2>/dev/null); echo \"${out:-none found}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls .github/workflows/ .gitlab-ci.yml .circleci/config.yml Jenkinsfile 2>/dev/null); echo \"${out:-none found}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls .github/workflows/ .gitlab-ci.yml .circleci/config.yml Jenkinsfile 2>/dev/null); echo \"${out:-none found}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls .github/workflows/ .gitlab-ci.yml .circleci/config.yml Jenkinsfile 2>/dev/null); echo \"${out:-none found}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls codecov.yml .codecov.yml .coveragerc 2>/dev/null; grep -ril \"coverage\" .github/workflows/ 2>/dev/null | head -3); echo \"${out:-none found}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls codecov.yml .codecov.yml .coveragerc 2>/dev/null; grep -ril \"coverage\" .github/workflows/ 2>/dev/null | head -3); echo \"${out:-none found}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls codecov.yml .codecov.yml .coveragerc 2>/dev/null; grep -ril \"coverage\" .github/workflows/ 2>/dev/null | head -3); echo \"${out:-none found}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls codecov.yml .codecov.yml .coveragerc 2>/dev/null; grep -ril \"coverage\" .github/workflows/ 2>/dev/null | head -3); echo \"${out:-none found}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls codecov.yml .codecov.yml .coveragerc 2>/dev/null; grep -ril \"coverage\" .github/workflows/ 2>/dev/null | head -3); echo \"${out:-none found}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(ls codecov.yml .codecov.yml .coveragerc 2>/dev/null; grep -ril \"coverage\" .github/workflows/ 2>/dev/null | head -3); echo \"${out:-none found}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(grep -ril \"test\" CLAUDE.md CONTRIBUTING.md docs/adr/ docs/decisions/ .claude/ 2>/dev/null | head -5); echo \"${out:-none \u2014 no written testing conventions (", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(grep -ril \"test\" CLAUDE.md CONTRIBUTING.md docs/adr/ docs/decisions/ .claude/ 2>/dev/null | head -5); echo \"${out:-none \u2014 no written testing conventions (", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(grep -ril \"test\" CLAUDE.md CONTRIBUTING.md docs/adr/ docs/decisions/ .claude/ 2>/dev/null | head -5); echo \"${out:-none \u2014 no written testing conventions (", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(grep -ril \"test\" CLAUDE.md CONTRIBUTING.md docs/adr/ docs/decisions/ .claude/ 2>/dev/null | head -5); echo \"${out:-none \u2014 no written testing conventions (", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(grep -ril \"test\" CLAUDE.md CONTRIBUTING.md docs/adr/ docs/decisions/ .claude/ 2>/dev/null | head -5); echo \"${out:-none \u2014 no written testing conventions (", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-audit/SKILL.md", + "command": "out=$(grep -ril \"test\" CLAUDE.md CONTRIBUTING.md docs/adr/ docs/decisions/ .claude/ 2>/dev/null | head -5); echo \"${out:-none \u2014 no written testing conventions (", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "(grep -q '\"vitest\"' package.json 2>/dev/null && echo \"vitest\") || (grep -q '\"jest\"' package.json 2>/dev/null && echo \"jest\") || echo \"unknown\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "(grep -q '\"vitest\"' package.json 2>/dev/null && echo \"vitest\") || (grep -q '\"jest\"' package.json 2>/dev/null && echo \"jest\") || echo \"unknown\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "(grep -q '\"vitest\"' package.json 2>/dev/null && echo \"vitest\") || (grep -q '\"jest\"' package.json 2>/dev/null && echo \"jest\") || echo \"unknown\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "(grep -q '\"vitest\"' package.json 2>/dev/null && echo \"vitest\") || (grep -q '\"jest\"' package.json 2>/dev/null && echo \"jest\") || echo \"unknown\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "(grep -q '\"vitest\"' package.json 2>/dev/null && echo \"vitest\") || (grep -q '\"jest\"' package.json 2>/dev/null && echo \"jest\") || echo \"unknown\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "(grep -q '\"vitest\"' package.json 2>/dev/null && echo \"vitest\") || (grep -q '\"jest\"' package.json 2>/dev/null && echo \"jest\") || echo \"unknown\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find src \\( -name \"*.test.ts\" -o -name \"*.test.tsx\" -o -name \"*.spec.ts\" -o -name \"*.spec.tsx\" \\) 2>/dev/null | head -8); echo \"${out:-no tests found}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find src \\( -name \"*.test.ts\" -o -name \"*.test.tsx\" -o -name \"*.spec.ts\" -o -name \"*.spec.tsx\" \\) 2>/dev/null | head -8); echo \"${out:-no tests found}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find src \\( -name \"*.test.ts\" -o -name \"*.test.tsx\" -o -name \"*.spec.ts\" -o -name \"*.spec.tsx\" \\) 2>/dev/null | head -8); echo \"${out:-no tests found}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find src \\( -name \"*.test.ts\" -o -name \"*.test.tsx\" -o -name \"*.spec.ts\" -o -name \"*.spec.tsx\" \\) 2>/dev/null | head -8); echo \"${out:-no tests found}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find src \\( -name \"*.test.ts\" -o -name \"*.test.tsx\" -o -name \"*.spec.ts\" -o -name \"*.spec.tsx\" \\) 2>/dev/null | head -8); echo \"${out:-no tests found}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find src \\( -name \"*.test.ts\" -o -name \"*.test.tsx\" -o -name \"*.spec.ts\" -o -name \"*.spec.tsx\" \\) 2>/dev/null | head -8); echo \"${out:-no tests found}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(ls 2>/dev/null | grep -E '^(vitest|vite|jest)\\.config\\.' | head -3); echo \"${out:-no config found}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(ls 2>/dev/null | grep -E '^(vitest|vite|jest)\\.config\\.' | head -3); echo \"${out:-no config found}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(ls 2>/dev/null | grep -E '^(vitest|vite|jest)\\.config\\.' | head -3); echo \"${out:-no config found}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(ls 2>/dev/null | grep -E '^(vitest|vite|jest)\\.config\\.' | head -3); echo \"${out:-no config found}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(ls 2>/dev/null | grep -E '^(vitest|vite|jest)\\.config\\.' | head -3); echo \"${out:-no config found}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(ls 2>/dev/null | grep -E '^(vitest|vite|jest)\\.config\\.' | head -3); echo \"${out:-no config found}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(ls e2e 2>/dev/null | grep '\\.spec\\.ts$' | head -5); echo \"${out:-no e2e tests}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(ls e2e 2>/dev/null | grep '\\.spec\\.ts$' | head -5); echo \"${out:-no e2e tests}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(ls e2e 2>/dev/null | grep '\\.spec\\.ts$' | head -5); echo \"${out:-no e2e tests}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(ls e2e 2>/dev/null | grep '\\.spec\\.ts$' | head -5); echo \"${out:-no e2e tests}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(ls e2e 2>/dev/null | grep '\\.spec\\.ts$' | head -5); echo \"${out:-no e2e tests}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(ls e2e 2>/dev/null | grep '\\.spec\\.ts$' | head -5); echo \"${out:-no e2e tests}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find src -type d -name \"__tests__\" 2>/dev/null | head -3); echo \"${out:-no __tests__ dirs found}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find src -type d -name \"__tests__\" 2>/dev/null | head -3); echo \"${out:-no __tests__ dirs found}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find src -type d -name \"__tests__\" 2>/dev/null | head -3); echo \"${out:-no __tests__ dirs found}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find src -type d -name \"__tests__\" 2>/dev/null | head -3); echo \"${out:-no __tests__ dirs found}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find src -type d -name \"__tests__\" 2>/dev/null | head -3); echo \"${out:-no __tests__ dirs found}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find src -type d -name \"__tests__\" 2>/dev/null | head -3); echo \"${out:-no __tests__ dirs found}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); d=$", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); d=$", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.05 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); d=$", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); d=$", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); d=$", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.03 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); d=$", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "out=$(ls .github/PULL_REQUEST_TEMPLATE.md .github/pull_request_template.md 2>/dev/null | head -1); echo \"${out:-none \u2014 use the default format below}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "out=$(ls .github/PULL_REQUEST_TEMPLATE.md .github/pull_request_template.md 2>/dev/null | head -1); echo \"${out:-none \u2014 use the default format below}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "out=$(ls .github/PULL_REQUEST_TEMPLATE.md .github/pull_request_template.md 2>/dev/null | head -1); echo \"${out:-none \u2014 use the default format below}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "out=$(ls .github/PULL_REQUEST_TEMPLATE.md .github/pull_request_template.md 2>/dev/null | head -1); echo \"${out:-none \u2014 use the default format below}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "out=$(ls .github/PULL_REQUEST_TEMPLATE.md .github/pull_request_template.md 2>/dev/null | head -1); echo \"${out:-none \u2014 use the default format below}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "command": "out=$(ls .github/PULL_REQUEST_TEMPLATE.md .github/pull_request_template.md 2>/dev/null | head -1); echo \"${out:-none \u2014 use the default format below}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(grep -Eo \"^\\s+(test:performance|test:binary-size|test:asset-budgets):\" Taskfile.yml 2>/dev/null | sed -E \"s/^[[:space:]]+//; s/:$//\" | tr \"\\n\" \" \"); echo ", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(grep -Eo \"^\\s+(test:performance|test:binary-size|test:asset-budgets):\" Taskfile.yml 2>/dev/null | sed -E \"s/^[[:space:]]+//; s/:$//\" | tr \"\\n\" \" \"); echo ", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(grep -Eo \"^\\s+(test:performance|test:binary-size|test:asset-budgets):\" Taskfile.yml 2>/dev/null | sed -E \"s/^[[:space:]]+//; s/:$//\" | tr \"\\n\" \" \"); echo ", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(grep -Eo \"^\\s+(test:performance|test:binary-size|test:asset-budgets):\" Taskfile.yml 2>/dev/null | sed -E \"s/^[[:space:]]+//; s/:$//\" | tr \"\\n\" \" \"); echo ", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(grep -Eo \"^\\s+(test:performance|test:binary-size|test:asset-budgets):\" Taskfile.yml 2>/dev/null | sed -E \"s/^[[:space:]]+//; s/:$//\" | tr \"\\n\" \" \"); echo ", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(grep -Eo \"^\\s+(test:performance|test:binary-size|test:asset-budgets):\" Taskfile.yml 2>/dev/null | sed -E \"s/^[[:space:]]+//; s/:$//\" | tr \"\\n\" \" \"); echo ", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(find internal/performance -name \"*.go\" 2>/dev/null | head -5); echo \"${out:-no internal/performance package \u2014 the budget constants live elsewhere or are a", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(find internal/performance -name \"*.go\" 2>/dev/null | head -5); echo \"${out:-no internal/performance package \u2014 the budget constants live elsewhere or are a", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(find internal/performance -name \"*.go\" 2>/dev/null | head -5); echo \"${out:-no internal/performance package \u2014 the budget constants live elsewhere or are a", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(find internal/performance -name \"*.go\" 2>/dev/null | head -5); echo \"${out:-no internal/performance package \u2014 the budget constants live elsewhere or are a", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(find internal/performance -name \"*.go\" 2>/dev/null | head -5); echo \"${out:-no internal/performance package \u2014 the budget constants live elsewhere or are a", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(find internal/performance -name \"*.go\" 2>/dev/null | head -5); echo \"${out:-no internal/performance package \u2014 the budget constants live elsewhere or are a", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(ls -l dist/app 2>/dev/null); echo \"${out:-no dist/app yet \u2014 a stripped build is required before the binary gate means anything}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(ls -l dist/app 2>/dev/null); echo \"${out:-no dist/app yet \u2014 a stripped build is required before the binary gate means anything}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(ls -l dist/app 2>/dev/null); echo \"${out:-no dist/app yet \u2014 a stripped build is required before the binary gate means anything}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(ls -l dist/app 2>/dev/null); echo \"${out:-no dist/app yet \u2014 a stripped build is required before the binary gate means anything}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(ls -l dist/app 2>/dev/null); echo \"${out:-no dist/app yet \u2014 a stripped build is required before the binary gate means anything}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "out=$(ls -l dist/app 2>/dev/null); echo \"${out:-no dist/app yet \u2014 a stripped build is required before the binary gate means anything}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(ls sqlc.yaml sqlc.yml sqlc.json 2>/dev/null | head -1); echo \"${out:-no sqlc config found \u2014 this repo does not use sqlc; hand-written SQL in handlers is a", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(ls sqlc.yaml sqlc.yml sqlc.json 2>/dev/null | head -1); echo \"${out:-no sqlc config found \u2014 this repo does not use sqlc; hand-written SQL in handlers is a", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(ls sqlc.yaml sqlc.yml sqlc.json 2>/dev/null | head -1); echo \"${out:-no sqlc config found \u2014 this repo does not use sqlc; hand-written SQL in handlers is a", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(ls sqlc.yaml sqlc.yml sqlc.json 2>/dev/null | head -1); echo \"${out:-no sqlc config found \u2014 this repo does not use sqlc; hand-written SQL in handlers is a", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(ls sqlc.yaml sqlc.yml sqlc.json 2>/dev/null | head -1); echo \"${out:-no sqlc config found \u2014 this repo does not use sqlc; hand-written SQL in handlers is a", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(ls sqlc.yaml sqlc.yml sqlc.json 2>/dev/null | head -1); echo \"${out:-no sqlc config found \u2014 this repo does not use sqlc; hand-written SQL in handlers is a", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(find sql/queries -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/queries/*.sql \u2014 read the sqlc config queries path before scaffolding}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(find sql/queries -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/queries/*.sql \u2014 read the sqlc config queries path before scaffolding}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(find sql/queries -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/queries/*.sql \u2014 read the sqlc config queries path before scaffolding}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(find sql/queries -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/queries/*.sql \u2014 read the sqlc config queries path before scaffolding}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(find sql/queries -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/queries/*.sql \u2014 read the sqlc config queries path before scaffolding}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(find sql/queries -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/queries/*.sql \u2014 read the sqlc config queries path before scaffolding}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(find sql/schema sql/migrations -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/schema or sql/migrations \u2014 locate the schema so column na", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(find sql/schema sql/migrations -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/schema or sql/migrations \u2014 locate the schema so column na", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(find sql/schema sql/migrations -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/schema or sql/migrations \u2014 locate the schema so column na", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(find sql/schema sql/migrations -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/schema or sql/migrations \u2014 locate the schema so column na", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(find sql/schema sql/migrations -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/schema or sql/migrations \u2014 locate the schema so column na", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(find sql/schema sql/migrations -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/schema or sql/migrations \u2014 locate the schema so column na", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$( { grep -Eq \"db:generate\" Taskfile.yml 2>/dev/null && echo \"task db:generate\"; } || { command -v sqlc >/dev/null 2>&1 && echo \"sqlc generate\"; } ); echo \"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$( { grep -Eq \"db:generate\" Taskfile.yml 2>/dev/null && echo \"task db:generate\"; } || { command -v sqlc >/dev/null 2>&1 && echo \"sqlc generate\"; } ); echo \"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$( { grep -Eq \"db:generate\" Taskfile.yml 2>/dev/null && echo \"task db:generate\"; } || { command -v sqlc >/dev/null 2>&1 && echo \"sqlc generate\"; } ); echo \"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$( { grep -Eq \"db:generate\" Taskfile.yml 2>/dev/null && echo \"task db:generate\"; } || { command -v sqlc >/dev/null 2>&1 && echo \"sqlc generate\"; } ); echo \"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$( { grep -Eq \"db:generate\" Taskfile.yml 2>/dev/null && echo \"task db:generate\"; } || { command -v sqlc >/dev/null 2>&1 && echo \"sqlc generate\"; } ); echo \"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$( { grep -Eq \"db:generate\" Taskfile.yml 2>/dev/null && echo \"task db:generate\"; } || { command -v sqlc >/dev/null 2>&1 && echo \"sqlc generate\"; } ); echo \"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(find internal/repository -maxdepth 1 -name \"*.go\" 2>/dev/null | sort | head -20); echo \"${out:-no internal/repository \u2014 the generated querier may be used ", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(find internal/repository -maxdepth 1 -name \"*.go\" 2>/dev/null | sort | head -20); echo \"${out:-no internal/repository \u2014 the generated querier may be used ", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(find internal/repository -maxdepth 1 -name \"*.go\" 2>/dev/null | sort | head -20); echo \"${out:-no internal/repository \u2014 the generated querier may be used ", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(find internal/repository -maxdepth 1 -name \"*.go\" 2>/dev/null | sort | head -20); echo \"${out:-no internal/repository \u2014 the generated querier may be used ", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(find internal/repository -maxdepth 1 -name \"*.go\" 2>/dev/null | sort | head -20); echo \"${out:-no internal/repository \u2014 the generated querier may be used ", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "command": "out=$(find internal/repository -maxdepth 1 -name \"*.go\" 2>/dev/null | sort | head -20); echo \"${out:-no internal/repository \u2014 the generated querier may be used ", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "command": "out=$(find internal/view -type f -name \"*.templ\" 2>/dev/null | sort | head -40); echo \"${out:-no internal/view/*.templ found \u2014 this repo is not laid out like th", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "command": "out=$(find internal/view -type f -name \"*.templ\" 2>/dev/null | sort | head -40); echo \"${out:-no internal/view/*.templ found \u2014 this repo is not laid out like th", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "command": "out=$(find internal/view -type f -name \"*.templ\" 2>/dev/null | sort | head -40); echo \"${out:-no internal/view/*.templ found \u2014 this repo is not laid out like th", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "command": "out=$(find internal/view -type f -name \"*.templ\" 2>/dev/null | sort | head -40); echo \"${out:-no internal/view/*.templ found \u2014 this repo is not laid out like th", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "command": "out=$(find internal/view -type f -name \"*.templ\" 2>/dev/null | sort | head -40); echo \"${out:-no internal/view/*.templ found \u2014 this repo is not laid out like th", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "command": "out=$(find internal/view -type f -name \"*.templ\" 2>/dev/null | sort | head -40); echo \"${out:-no internal/view/*.templ found \u2014 this repo is not laid out like th", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "command": "out=$(ls internal/view/props.go internal/view/render.go 2>/dev/null); echo \"${out:-no internal/view/props.go or render.go \u2014 read the repo layout for the props/r", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "command": "out=$(ls internal/view/props.go internal/view/render.go 2>/dev/null); echo \"${out:-no internal/view/props.go or render.go \u2014 read the repo layout for the props/r", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "command": "out=$(ls internal/view/props.go internal/view/render.go 2>/dev/null); echo \"${out:-no internal/view/props.go or render.go \u2014 read the repo layout for the props/r", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "command": "out=$(ls internal/view/props.go internal/view/render.go 2>/dev/null); echo \"${out:-no internal/view/props.go or render.go \u2014 read the repo layout for the props/r", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "command": "out=$(ls internal/view/props.go internal/view/render.go 2>/dev/null); echo \"${out:-no internal/view/props.go or render.go \u2014 read the repo layout for the props/r", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "command": "out=$(ls internal/view/props.go internal/view/render.go 2>/dev/null); echo \"${out:-no internal/view/props.go or render.go \u2014 read the repo layout for the props/r", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "command": "out=$( { grep -Eq \"templ:generate\" Taskfile.yml 2>/dev/null && echo \"task templ:generate\"; } || { command -v templ >/dev/null 2>&1 && echo \"templ generate\"; } )", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "command": "out=$( { grep -Eq \"templ:generate\" Taskfile.yml 2>/dev/null && echo \"task templ:generate\"; } || { command -v templ >/dev/null 2>&1 && echo \"templ generate\"; } )", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "command": "out=$( { grep -Eq \"templ:generate\" Taskfile.yml 2>/dev/null && echo \"task templ:generate\"; } || { command -v templ >/dev/null 2>&1 && echo \"templ generate\"; } )", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "command": "out=$( { grep -Eq \"templ:generate\" Taskfile.yml 2>/dev/null && echo \"task templ:generate\"; } || { command -v templ >/dev/null 2>&1 && echo \"templ generate\"; } )", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "command": "out=$( { grep -Eq \"templ:generate\" Taskfile.yml 2>/dev/null && echo \"task templ:generate\"; } || { command -v templ >/dev/null 2>&1 && echo \"templ generate\"; } )", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "command": "out=$( { grep -Eq \"templ:generate\" Taskfile.yml 2>/dev/null && echo \"task templ:generate\"; } || { command -v templ >/dev/null 2>&1 && echo \"templ generate\"; } )", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(sed -n \"s/^module //p\" go.mod 2>/dev/null | head -1); echo \"${out:-no go.mod found \u2014 is this a Go module? confirm before scaffolding}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(sed -n \"s/^module //p\" go.mod 2>/dev/null | head -1); echo \"${out:-no go.mod found \u2014 is this a Go module? confirm before scaffolding}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(sed -n \"s/^module //p\" go.mod 2>/dev/null | head -1); echo \"${out:-no go.mod found \u2014 is this a Go module? confirm before scaffolding}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(sed -n \"s/^module //p\" go.mod 2>/dev/null | head -1); echo \"${out:-no go.mod found \u2014 is this a Go module? confirm before scaffolding}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(sed -n \"s/^module //p\" go.mod 2>/dev/null | head -1); echo \"${out:-no go.mod found \u2014 is this a Go module? confirm before scaffolding}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(sed -n \"s/^module //p\" go.mod 2>/dev/null | head -1); echo \"${out:-no go.mod found \u2014 is this a Go module? confirm before scaffolding}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$( { grep -Rqs \"github.com/stretchr/testify\" go.mod 2>/dev/null && echo \"testify present in go.mod (check the target package's existing tests for whether th", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$( { grep -Rqs \"github.com/stretchr/testify\" go.mod 2>/dev/null && echo \"testify present in go.mod (check the target package's existing tests for whether th", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$( { grep -Rqs \"github.com/stretchr/testify\" go.mod 2>/dev/null && echo \"testify present in go.mod (check the target package's existing tests for whether th", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$( { grep -Rqs \"github.com/stretchr/testify\" go.mod 2>/dev/null && echo \"testify present in go.mod (check the target package's existing tests for whether th", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$( { grep -Rqs \"github.com/stretchr/testify\" go.mod 2>/dev/null && echo \"testify present in go.mod (check the target package's existing tests for whether th", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$( { grep -Rqs \"github.com/stretchr/testify\" go.mod 2>/dev/null && echo \"testify present in go.mod (check the target package's existing tests for whether th", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find . -name \"*_test.go\" -not -path \"./vendor/*\" 2>/dev/null | head -8); echo \"${out:-no _test.go files yet \u2014 this will be the first}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find . -name \"*_test.go\" -not -path \"./vendor/*\" 2>/dev/null | head -8); echo \"${out:-no _test.go files yet \u2014 this will be the first}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find . -name \"*_test.go\" -not -path \"./vendor/*\" 2>/dev/null | head -8); echo \"${out:-no _test.go files yet \u2014 this will be the first}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find . -name \"*_test.go\" -not -path \"./vendor/*\" 2>/dev/null | head -8); echo \"${out:-no _test.go files yet \u2014 this will be the first}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find . -name \"*_test.go\" -not -path \"./vendor/*\" 2>/dev/null | head -8); echo \"${out:-no _test.go files yet \u2014 this will be the first}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find . -name \"*_test.go\" -not -path \"./vendor/*\" 2>/dev/null | head -8); echo \"${out:-no _test.go files yet \u2014 this will be the first}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$( { grep -Eq \"^\\s*test:\" Taskfile.yml 2>/dev/null && echo \"task test\"; } || echo \"go test ./...\" ); echo \"${out}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$( { grep -Eq \"^\\s*test:\" Taskfile.yml 2>/dev/null && echo \"task test\"; } || echo \"go test ./...\" ); echo \"${out}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$( { grep -Eq \"^\\s*test:\" Taskfile.yml 2>/dev/null && echo \"task test\"; } || echo \"go test ./...\" ); echo \"${out}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$( { grep -Eq \"^\\s*test:\" Taskfile.yml 2>/dev/null && echo \"task test\"; } || echo \"go test ./...\" ); echo \"${out}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$( { grep -Eq \"^\\s*test:\" Taskfile.yml 2>/dev/null && echo \"task test\"; } || echo \"go test ./...\" ); echo \"${out}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "command": "out=$( { grep -Eq \"^\\s*test:\" Taskfile.yml 2>/dev/null && echo \"task test\"; } || echo \"go test ./...\" ); echo \"${out}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo [a-z-]+( [^\\\"]*)?\" {} + 2>/dev/null | sort -u | head -10); echo \"${out:-no CI work", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo [a-z-]+( [^\\\"]*)?\" {} + 2>/dev/null | sort -u | head -10); echo \"${out:-no CI work", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo [a-z-]+( [^\\\"]*)?\" {} + 2>/dev/null | sort -u | head -10); echo \"${out:-no CI work", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo [a-z-]+( [^\\\"]*)?\" {} + 2>/dev/null | sort -u | head -10); echo \"${out:-no CI work", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo [a-z-]+( [^\\\"]*)?\" {} + 2>/dev/null | sort -u | head -10); echo \"${out:-no CI work", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo [a-z-]+( [^\\\"]*)?\" {} + 2>/dev/null | sort -u | head -10); echo \"${out:-no CI work", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(ls deny.toml 2>/dev/null); echo \"${out:-none \u2014 skip the cargo-deny leg (note its absence in the report)}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(ls deny.toml 2>/dev/null); echo \"${out:-none \u2014 skip the cargo-deny leg (note its absence in the report)}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(ls deny.toml 2>/dev/null); echo \"${out:-none \u2014 skip the cargo-deny leg (note its absence in the report)}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(ls deny.toml 2>/dev/null); echo \"${out:-none \u2014 skip the cargo-deny leg (note its absence in the report)}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(ls deny.toml 2>/dev/null); echo \"${out:-none \u2014 skip the cargo-deny leg (note its absence in the report)}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(ls deny.toml 2>/dev/null); echo \"${out:-none \u2014 skip the cargo-deny leg (note its absence in the report)}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(ls fuzz/fuzz_targets 2>/dev/null | head -5); echo \"${out:-none}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(ls fuzz/fuzz_targets 2>/dev/null | head -5); echo \"${out:-none}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(ls fuzz/fuzz_targets 2>/dev/null | head -5); echo \"${out:-none}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(ls fuzz/fuzz_targets 2>/dev/null | head -5); echo \"${out:-none}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(ls fuzz/fuzz_targets 2>/dev/null | head -5); echo \"${out:-none}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(ls fuzz/fuzz_targets 2>/dev/null | head -5); echo \"${out:-none}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(command -v cargo >/dev/null 2>&1 && cargo --version 2>/dev/null); echo \"${out:-cargo not on PATH \u2014 report every gate as unrunnable; do not guess verdicts}", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.05 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(command -v cargo >/dev/null 2>&1 && cargo --version 2>/dev/null); echo \"${out:-cargo not on PATH \u2014 report every gate as unrunnable; do not guess verdicts}", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(command -v cargo >/dev/null 2>&1 && cargo --version 2>/dev/null); echo \"${out:-cargo not on PATH \u2014 report every gate as unrunnable; do not guess verdicts}", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(command -v cargo >/dev/null 2>&1 && cargo --version 2>/dev/null); echo \"${out:-cargo not on PATH \u2014 report every gate as unrunnable; do not guess verdicts}", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(command -v cargo >/dev/null 2>&1 && cargo --version 2>/dev/null); echo \"${out:-cargo not on PATH \u2014 report every gate as unrunnable; do not guess verdicts}", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/rust-tools/skills/gate-check/SKILL.md", + "command": "out=$(command -v cargo >/dev/null 2>&1 && cargo --version 2>/dev/null); echo \"${out:-cargo not on PATH \u2014 report every gate as unrunnable; do not guess verdicts}", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.02 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(ls Cargo.toml 2>/dev/null); echo \"${out:-no Cargo.toml at root \u2014 is this a Rust project? confirm before scaffolding}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(ls Cargo.toml 2>/dev/null); echo \"${out:-no Cargo.toml at root \u2014 is this a Rust project? confirm before scaffolding}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(ls Cargo.toml 2>/dev/null); echo \"${out:-no Cargo.toml at root \u2014 is this a Rust project? confirm before scaffolding}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(ls Cargo.toml 2>/dev/null); echo \"${out:-no Cargo.toml at root \u2014 is this a Rust project? confirm before scaffolding}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(ls Cargo.toml 2>/dev/null); echo \"${out:-no Cargo.toml at root \u2014 is this a Rust project? confirm before scaffolding}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(ls Cargo.toml 2>/dev/null); echo \"${out:-no Cargo.toml at root \u2014 is this a Rust project? confirm before scaffolding}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(grep -q \"^\\[workspace\\]\" Cargo.toml 2>/dev/null && echo \"workspace \u2014 scaffold inside the member crate that owns the target\" || grep -m1 \"^name *=\" Cargo.t", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(grep -q \"^\\[workspace\\]\" Cargo.toml 2>/dev/null && echo \"workspace \u2014 scaffold inside the member crate that owns the target\" || grep -m1 \"^name *=\" Cargo.t", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(grep -q \"^\\[workspace\\]\" Cargo.toml 2>/dev/null && echo \"workspace \u2014 scaffold inside the member crate that owns the target\" || grep -m1 \"^name *=\" Cargo.t", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(grep -q \"^\\[workspace\\]\" Cargo.toml 2>/dev/null && echo \"workspace \u2014 scaffold inside the member crate that owns the target\" || grep -m1 \"^name *=\" Cargo.t", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(grep -q \"^\\[workspace\\]\" Cargo.toml 2>/dev/null && echo \"workspace \u2014 scaffold inside the member crate that owns the target\" || grep -m1 \"^name *=\" Cargo.t", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(grep -q \"^\\[workspace\\]\" Cargo.toml 2>/dev/null && echo \"workspace \u2014 scaffold inside the member crate that owns the target\" || grep -m1 \"^name *=\" Cargo.t", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(grep -rl \"#\\[cfg(test)\\]\" --include=\"*.rs\" crates src 2>/dev/null | head -6); echo \"${out:-no inline test modules yet \u2014 this will set the pattern}\"", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(grep -rl \"#\\[cfg(test)\\]\" --include=\"*.rs\" crates src 2>/dev/null | head -6); echo \"${out:-no inline test modules yet \u2014 this will set the pattern}\"", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(grep -rl \"#\\[cfg(test)\\]\" --include=\"*.rs\" crates src 2>/dev/null | head -6); echo \"${out:-no inline test modules yet \u2014 this will set the pattern}\"", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.0 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(grep -rl \"#\\[cfg(test)\\]\" --include=\"*.rs\" crates src 2>/dev/null | head -6); echo \"${out:-no inline test modules yet \u2014 this will set the pattern}\"", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(grep -rl \"#\\[cfg(test)\\]\" --include=\"*.rs\" crates src 2>/dev/null | head -6); echo \"${out:-no inline test modules yet \u2014 this will set the pattern}\"", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(grep -rl \"#\\[cfg(test)\\]\" --include=\"*.rs\" crates src 2>/dev/null | head -6); echo \"${out:-no inline test modules yet \u2014 this will set the pattern}\"", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo (test|nextest)[^\\\"]*\" {} + 2>/dev/null | sort -u | head -2); echo \"${out:-cargo te", + "shell": "bash", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo (test|nextest)[^\\\"]*\" {} + 2>/dev/null | sort -u | head -2); echo \"${out:-cargo te", + "shell": "bash", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo (test|nextest)[^\\\"]*\" {} + 2>/dev/null | sort -u | head -2); echo \"${out:-cargo te", + "shell": "bash", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo (test|nextest)[^\\\"]*\" {} + 2>/dev/null | sort -u | head -2); echo \"${out:-cargo te", + "shell": "zsh", + "context": "empty", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo (test|nextest)[^\\\"]*\" {} + 2>/dev/null | sort -u | head -2); echo \"${out:-cargo te", + "shell": "zsh", + "context": "marketplace-repo", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + }, + { + "skill": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo (test|nextest)[^\\\"]*\" {} + 2>/dev/null | sort -u | head -2); echo \"${out:-cargo te", + "shell": "zsh", + "context": "unrelated", + "exit": 0, + "stdout_nonempty": true, + "stderr": "", + "seconds": 0.01 + } + ] +} \ No newline at end of file diff --git a/docs/audits/2026-09-05-post-fix/publication.json b/docs/audits/2026-09-05-post-fix/publication.json new file mode 100644 index 0000000..68f96e3 --- /dev/null +++ b/docs/audits/2026-09-05-post-fix/publication.json @@ -0,0 +1,14 @@ +{ + "status": "accepted", + "published_at": 1788921643, + "endpoint": "https://ops.chris-d8c.workers.dev/ingest", + "report_sha256": "62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "dedupe_key": "owned-skills-2026-09-05-post-fix:62c37a0bbc83d6c8d2d4906a4a20e43bfc7057d52b2dc7367da7e20bd1f45cae", + "response": { + "ok": true, + "entities": 39, + "signals": 195 + }, + "verification": "HTTP 202 and exact entity/signal counts acknowledged; dashboard readback requires authenticated UI.", + "note": "First two attempts on 2026-09-08 blocked on 1Password desktop-app session setup (app-side HTTP client failure); succeeded after the app was relaunched." +} diff --git a/docs/audits/2026-09-05-post-fix/reproductions.json b/docs/audits/2026-09-05-post-fix/reproductions.json new file mode 100644 index 0000000..023bcd8 --- /dev/null +++ b/docs/audits/2026-09-05-post-fix/reproductions.json @@ -0,0 +1,58 @@ +{ + "git commit --no-verify": { + "exit": 0, + "decision": "deny" + }, + "/usr/bin/git commit --no-verify": { + "exit": 0, + "decision": "deny" + }, + "env git commit --no-verify": { + "exit": 0, + "decision": "deny" + }, + "env -i git push --no-verify": { + "exit": 0, + "decision": "deny" + }, + "command git push --no-verify": { + "exit": 0, + "decision": "deny" + }, + "git -C /tmp commit --no-verify": { + "exit": 0, + "decision": "deny" + }, + "git push -n": { + "exit": 0, + "decision": "allow" + }, + "echo git commit --no-verify": { + "exit": 0, + "decision": "allow" + }, + "astro/templ surface probe (bash)": { + "exit": 0, + "stdout": "2 files (0 means no recognized markup \u2014 inspect the target layout before deciding there is no surface)", + "stderr": "", + "line": 11 + }, + "astro/templ surface probe (zsh)": { + "exit": 0, + "stdout": "2 files (0 means no recognized markup \u2014 inspect the target layout before deciding there is no surface)", + "stderr": "", + "line": 11 + }, + "cargo check --offline": { + "exit": 0, + "stderr": " Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.03s\n" + }, + "cargo test --offline --no-run": { + "exit": 101, + "stderr": "bfc562aff7/scratchpad/rust-fixture)\nerror[E0308]: mismatched types\n --> src/lib.rs:2:71\n |\n2 | #[cfg(test)] mod tests { #[test] #[ignore] fn sample() { let x: u32 = \"wrong\"; } }\n | --- ^^^^^^^ expected `u32`, found `&str`\n | |\n | expected due to this\n\nFor more information about this error, try `rustc --explain E0308`.\nerror: could not compile `skill-audit-fixture` (lib test) due to 1 previous error\n" + }, + "release dry run": { + "re_executed": false, + "note": "Instruction-only fix: the dry-run now works on temporary copies and forbids git restore/checkout/reset as cleanup. Verified by reading plugins/code-tools/skills/plugin-release/SKILL.md; no agent execution in this pass." + } +} \ No newline at end of file diff --git a/docs/audits/2026-09-05-post-fix/structure.json b/docs/audits/2026-09-05-post-fix/structure.json new file mode 100644 index 0000000..7885efe --- /dev/null +++ b/docs/audits/2026-09-05-post-fix/structure.json @@ -0,0 +1,38 @@ +[ + { + "plugin": "clownware-astro-tools", + "version": "0.5.2", + "skill_count": 3, + "errors": [] + }, + { + "plugin": "clownware-code-tools", + "version": "0.15.3", + "skill_count": 17, + "errors": [] + }, + { + "plugin": "clownware-go-tools", + "version": "0.3.3", + "skill_count": 5, + "errors": [] + }, + { + "plugin": "pezza-design-system", + "version": "0.5.3", + "skill_count": 1, + "errors": [] + }, + { + "plugin": "clownware-rust-tools", + "version": "0.1.2", + "skill_count": 2, + "errors": [] + }, + { + "plugin": "product-dev", + "version": "0.5.0", + "skill_count": 5, + "errors": [] + } +] \ No newline at end of file diff --git a/docs/audits/2026-09-05/REPORT.md b/docs/audits/2026-09-05/REPORT.md new file mode 100644 index 0000000..e8cb2d1 --- /dev/null +++ b/docs/audits/2026-09-05/REPORT.md @@ -0,0 +1,178 @@ +# Owned skill and plugin audit — 2026-09-05 + +**Scope:** all 33 canonical SKILL.md entrypoints across six owned plugins were read. This is a static and targeted execution audit, not an exhaustive behavioral certification. Third-party/system skills and four divergent legacy personal copies are excluded from scoring. No audited skill was changed. + +## Scoring rubric + +Each reviewed entry starts at 100. Deduct 5 for a low finding, 10 medium, 20 high, 40 critical. These are transparent review-priority weights, not measured capability percentages. **100 means no scored finding in the stated review scope. It does not mean fully tested or safe in every host.** Package scores cover packaging/hooks; mean skill scores describe the child entrypoints and are not substituted for package findings. + +## Verification + +- 107 actual inline prefetch commands, 642 executions: bash and zsh in marketplace, empty directory, and relevant target repository. All returned exit 0, nonempty stdout, and no stderr. Semantic false negatives remain possible; see F04. +- Claude plugin validator: five passed; code-tools failed. PyYAML independently confirmed F01. Hook scripts passed bash syntax checks. Shellcheck was unavailable. +- Scratch reproductions confirmed release dry-run data loss, Rust test-compilation gap, Astro inventory false negative, and git-guard command-form gaps. Real commits/pushes were never attempted through the guard. +- One blind Codex JS test-generation sample met 4/4 pre-recorded artifact criteria. The evaluator reported 17 equivalent direct Node assertions passed. Vitest was not installed/run. No baseline comparison, Claude execution, automatic triggering experiment, or full plugin install/import test was performed. +- Product-dev concrete Tier 1 prompt-table file references resolved. Supporting prompts, generated artifacts, rendering, external MCP availability, and all executable resources were not exhaustively evaluated. + +## Plugin scores + +| Plugin | Source version | Packaging /100 | Mean skill review /100 | Installed Claude version | +|---|---|---:|---:|---| +| clownware-astro-tools | 0.5.1 | 100 | 93.3 | 0.4.0 | +| clownware-code-tools | 0.15.2 | 70 | 95.9 | 0.14.0 | +| clownware-go-tools | 0.3.2 | 100 | 96.0 | 0.2.0 | +| pezza-design-system | 0.5.2 | 100 | 95.0 | 0.5.1 | +| clownware-rust-tools | 0.1.1 | 100 | 90.0 | 0.1.0 | +| product-dev | 0.5.0 | 100 | 99.0 | 0.1.0 | + +All six installed version records trail the corresponding local source versions. This does not establish which source versions are remotely published or currently loaded in a session. + +## Skill scorecard + +| Skill | Review /100 | Findings | +|---|---:|---| +| clownware-astro-tools:astro-pr-description | 100 | No scored finding; behavior not established | +| clownware-astro-tools:component-scaffold | 90 | F07 | +| clownware-astro-tools:perf-budget-check | 90 | F08 | +| clownware-code-tools:a11y-audit | 90 | F04 | +| clownware-code-tools:adr | 100 | No scored finding; behavior not established | +| clownware-code-tools:arch-audit | 100 | No scored finding; behavior not established | +| clownware-code-tools:audit-fix | 100 | No scored finding; behavior not established | +| clownware-code-tools:deps-audit | 100 | No scored finding; behavior not established | +| clownware-code-tools:design-audit | 100 | No scored finding; behavior not established | +| clownware-code-tools:devops-audit | 100 | No scored finding; behavior not established | +| clownware-code-tools:githits-research | 80 | F01 | +| clownware-code-tools:perf-audit | 100 | No scored finding; behavior not established | +| clownware-code-tools:plugin-release | 80 | F02 | +| clownware-code-tools:pr-description | 100 | No scored finding; behavior not established | +| clownware-code-tools:root-cause-debug | 100 | No scored finding; behavior not established | +| clownware-code-tools:security-audit | 100 | No scored finding; behavior not established | +| clownware-code-tools:skill-audit | 90 | F09 | +| clownware-code-tools:skill-validate | 100 | No scored finding; behavior not established | +| clownware-code-tools:test-audit | 100 | No scored finding; behavior not established | +| clownware-code-tools:test-scaffold | 90 | F06 | +| clownware-go-tools:go-pr-description | 100 | No scored finding; behavior not established | +| clownware-go-tools:perf-budget-check | 100 | No scored finding; behavior not established | +| clownware-go-tools:sqlc-query-scaffold | 100 | No scored finding; behavior not established | +| clownware-go-tools:templ-component-scaffold | 90 | F07 | +| clownware-go-tools:test-scaffold | 90 | F06 | +| pezza-design-system:pezza-design | 95 | F10 | +| clownware-rust-tools:gate-check | 100 | No scored finding; behavior not established | +| clownware-rust-tools:test-scaffold | 80 | F03, F06 | +| product-dev:product-flow | 100 | No scored finding; behavior not established | +| product-dev:product-ideation | 95 | F11 | +| product-dev:status | 100 | No scored finding; behavior not established | +| product-dev:tech-spec | 100 | No scored finding; behavior not established | +| product-dev:ux-optimization | 100 | No scored finding; behavior not established | + +## Findings + +### F01 — GitHits frontmatter fails the authoritative validator (high) + +The unquoted description contains colon-space sequences. Both PyYAML and claude plugin validate reject it. Claude validator reports metadata will be dropped at runtime. Catalog CI only regex-checks field presence, so it misses this defect. + +Evidence: `plugins/code-tools/skills/githits-research/SKILL.md:3`, `.github/workflows/validate.yml:180`. + +Recommendation: Use a YAML block scalar and run a real YAML parser and host validator in CI. + +### F02 — Release dry-run can discard pre-existing edits (high) + +The dry-run edits real files and then runs git checkout -- . A scratch Git reproduction lost an existing userNote field. The dirty-tree warning does not preserve the original bytes. + +Evidence: `plugins/code-tools/skills/plugin-release/SKILL.md:80`. + +Recommendation: Generate the proposed diff in a temporary copy, or restore an exact pre-run snapshot without discarding user changes. + +### F03 — Rust scaffold verification does not compile tests (medium) + +A fixture with a type error inside an ignored cfg(test) test passes cargo check (0) and fails cargo test --no-run (101). The skill promises scaffold compilation but selects the weaker command. + +Evidence: `plugins/rust-tools/skills/test-scaffold/SKILL.md:70`. + +Recommendation: Use cargo test --no-run or cargo check --tests with the owning crate and feature configuration. + +### F04 — Accessibility inventory misses Astro and templ (medium) + +The inventory omits .astro and .templ yet instructs the agent to stop on zero. A fixture containing index.astro returns 0 files and the stop instruction. This is a detection gap in stacks maintained by this marketplace. + +Evidence: `plugins/code-tools/skills/a11y-audit/SKILL.md:11`. + +Recommendation: Include supported template extensions and treat zero probe matches as a hypothesis until the target surface is checked. + +### F05 — Git guard does not cover common executable forms (medium) + +Payload-only tests deny git commit --no-verify but silently allow /usr/bin/git commit --no-verify and env git commit --no-verify. No commit commands were executed. This is incomplete convenience-hook coverage, not proof that repository CI can be bypassed. + +Evidence: `plugins/code-tools/hooks/git-guard.sh:36`. + +Recommendation: Narrow the documented guarantee; normalize supported invocation forms and retain authoritative checks outside the agent hook. + +### F06 — Test-scaffold discovery promises more than the body permits (medium) + +JS, Go and Rust descriptions trigger on write tests/add coverage, while bodies mandate todo/skip/ignore stubs and forbid assertions. One blind Codex sample correctly prioritized an explicit request for assertions: 4/4 artifact criteria met. This finding is the contradictory contract, not a demonstrated failure of that sample. + +Evidence: `plugins/code-tools/skills/test-scaffold/SKILL.md:79`, `plugins/go-tools/skills/test-scaffold/SKILL.md:74`, `plugins/rust-tools/skills/test-scaffold/SKILL.md:75`. + +Recommendation: Limit discovery to explicit scaffolding, or make complete tests the default when requested and stubs an explicit mode. + +### F07 — Generic scaffold fallback still mandates starter styling (medium) + +Astro component-scaffold and Go templ-component-scaffold allow alternate layouts but still prescribe Tailwind and starter tokens. This contradicts plugin claims of fallback support for other projects. Verified instruction mismatch; no generated UI was evaluated. + +Evidence: `plugins/astro-tools/skills/component-scaffold/SKILL.md:106`, `plugins/go-tools/skills/templ-component-scaffold/SKILL.md:39`. + +Recommendation: Read the target styling system and make starter classes conditional on the starter being present. + +### F08 — Build freshness rule omits uncommitted edits (medium) + +Astro perf-budget-check uses the last committed src timestamp versus dist mtime. An uncommitted source edit leaves the git log timestamp unchanged, so this method cannot establish working-tree artifact freshness. Static algorithm review; no production build or perf gate run. + +Evidence: `plugins/astro-tools/skills/perf-budget-check/SKILL.md:30`. + +Recommendation: Use the repository build/cache fingerprint or rebuild before reporting working-tree budgets. + +### F09 — Skill audit treats allowed-tools as a restrictive boundary (medium) + +The audit says underscoping allowed-tools breaks runtime. Current Claude documentation describes it as an approval grant; separate restrictions govern tool removal. The body also assumes universal undertriggering without a model-specific evaluation. + +Evidence: `plugins/code-tools/skills/skill-audit/SKILL.md:25`, `plugins/code-tools/skills/skill-audit/SKILL.md:30`, [https://code.claude.com/docs/en/skills](https://code.claude.com/docs/en/skills). + +Recommendation: Audit approval grants separately from restrictions and test triggering per host/model rather than using a permanent assumption. + +### F10 — Pezza mark instructions have an unresolved exception (low) + +The hard rule says never filled/outlined, while the file map and production guidance explicitly provide official filled outlines for static placement. The intended distinction between altering artwork and using official assets should be explicit. No visual defect is claimed. + +Evidence: `plugins/pezza-design-system/skills/pezza-design/SKILL.md:11`, `plugins/pezza-design-system/skills/pezza-design/SKILL.md:25`. + +Recommendation: State that official filled artwork is permitted and that the no-fill rule concerns modifying the stroke master. + +### F11 — Ideation requires a second user override (low) + +The escape hatch requires pushing back once when the user says just move on, respecting only a second pushback. This adds friction for already explicit scope choices. Instruction review only, not a behavioral failure. + +Evidence: `../product-dev/plugin/skills/product-ideation/SKILL.md:23`. + +Recommendation: Respect the first explicit override while recording unresolved assumptions. + +## Preserve these strengths + +- Assessment-only audits distinguish findings from fixes and usually require contextual verification. +- Budget skills call the repository’s own gates instead of rebuilding budget logic. +- Product-dev keeps artifacts, provenance, and staleness rules separate from its entrypoints. +- Pezza packages real brand assets and tokens the model cannot infer. +- Most probes have explicit fallbacks and bounded output. + +## Priority and portability + +Fix F01 and F02 first; then F03–F09. Resolve F10–F11 as instruction choices. Add YAML parsing and host validation to CI. Keep source/installed drift visible rather than treating catalog presence as health. + +All cross-host compatibility remains unvalidated. Treat shell interpolation, argument substitution, plugin-root paths, agents, tool grants, and hook event schemas as host adapters. Do not subtract points merely for being a correctly scoped Claude plugin. + +## Ops ingestion + +`audit.json` is the scored record; `ops-payload.json` is generated by `scripts/publish_skill_audit.py`. Five state metrics per entity carry score, complete findings, provenance, behavioral coverage, and portability status. Severity comes from findings, not from interpreting a numeric score. Unknown behavior has no numeric pass value. Source hashes and revisions identify what was inspected. The payload intentionally omits entity metadata to avoid replacing poller-owned metadata. + +Rerunning the same report is idempotent. Changing the report creates a different dedupe key. A future complete audit emits an empty findings summary at severity 0 to clear the current summary. Individual finding metrics are not emitted, avoiding stale unresolved flags. Runtime/model benchmark histories need a separate schema and are not represented as a single passing score. + +Publication status is recorded in `publication.json` after submission. No source fixes, deployments, commits, or pushes are included in this audit. diff --git a/docs/audits/2026-09-05/audit.json b/docs/audits/2026-09-05/audit.json new file mode 100644 index 0000000..00bb82a --- /dev/null +++ b/docs/audits/2026-09-05/audit.json @@ -0,0 +1,756 @@ +{ + "schema_version": 1, + "run_id": "owned-skills-2026-09-05", + "observed_at": 1788617535, + "rubric_version": "static-review-v1", + "reviewer": "Codex session; human-readable expert review; one independent Codex sample", + "rubric": { + "baseline": 100, + "deductions": { + "low": 5, + "medium": 10, + "high": 20, + "critical": 40 + }, + "meaning": "Review index, not probability, effectiveness, or behavioral benchmark. 100 means no scored findings within stated coverage. Findings can remain even when a model compensates. Plugin packaging score is separate from mean skill score.", + "scope": "33 owned canonical skill entrypoints in 6 plugins. Third-party/system skills and legacy personal copies are inventory-only, not scored." + }, + "findings": [ + { + "id": "F01", + "severity": 3, + "title": "GitHits frontmatter fails the authoritative validator", + "detail": "The unquoted description contains colon-space sequences. Both PyYAML and claude plugin validate reject it. Claude validator reports metadata will be dropped at runtime. Catalog CI only regex-checks field presence, so it misses this defect.", + "references": [ + "plugins/code-tools/skills/githits-research/SKILL.md:3", + ".github/workflows/validate.yml:180" + ], + "recommendation": "Use a YAML block scalar and run a real YAML parser and host validator in CI." + }, + { + "id": "F02", + "severity": 3, + "title": "Release dry-run can discard pre-existing edits", + "detail": "The dry-run edits real files and then runs git checkout -- . A scratch Git reproduction lost an existing userNote field. The dirty-tree warning does not preserve the original bytes.", + "references": [ + "plugins/code-tools/skills/plugin-release/SKILL.md:80" + ], + "recommendation": "Generate the proposed diff in a temporary copy, or restore an exact pre-run snapshot without discarding user changes." + }, + { + "id": "F03", + "severity": 2, + "title": "Rust scaffold verification does not compile tests", + "detail": "A fixture with a type error inside an ignored cfg(test) test passes cargo check (0) and fails cargo test --no-run (101). The skill promises scaffold compilation but selects the weaker command.", + "references": [ + "plugins/rust-tools/skills/test-scaffold/SKILL.md:70" + ], + "recommendation": "Use cargo test --no-run or cargo check --tests with the owning crate and feature configuration." + }, + { + "id": "F04", + "severity": 2, + "title": "Accessibility inventory misses Astro and templ", + "detail": "The inventory omits .astro and .templ yet instructs the agent to stop on zero. A fixture containing index.astro returns 0 files and the stop instruction. This is a detection gap in stacks maintained by this marketplace.", + "references": [ + "plugins/code-tools/skills/a11y-audit/SKILL.md:11" + ], + "recommendation": "Include supported template extensions and treat zero probe matches as a hypothesis until the target surface is checked." + }, + { + "id": "F05", + "severity": 2, + "title": "Git guard does not cover common executable forms", + "detail": "Payload-only tests deny git commit --no-verify but silently allow /usr/bin/git commit --no-verify and env git commit --no-verify. No commit commands were executed. This is incomplete convenience-hook coverage, not proof that repository CI can be bypassed.", + "references": [ + "plugins/code-tools/hooks/git-guard.sh:36" + ], + "recommendation": "Narrow the documented guarantee; normalize supported invocation forms and retain authoritative checks outside the agent hook." + }, + { + "id": "F06", + "severity": 2, + "title": "Test-scaffold discovery promises more than the body permits", + "detail": "JS, Go and Rust descriptions trigger on write tests/add coverage, while bodies mandate todo/skip/ignore stubs and forbid assertions. One blind Codex sample correctly prioritized an explicit request for assertions: 4/4 artifact criteria met. This finding is the contradictory contract, not a demonstrated failure of that sample.", + "references": [ + "plugins/code-tools/skills/test-scaffold/SKILL.md:79", + "plugins/go-tools/skills/test-scaffold/SKILL.md:74", + "plugins/rust-tools/skills/test-scaffold/SKILL.md:75" + ], + "recommendation": "Limit discovery to explicit scaffolding, or make complete tests the default when requested and stubs an explicit mode." + }, + { + "id": "F07", + "severity": 2, + "title": "Generic scaffold fallback still mandates starter styling", + "detail": "Astro component-scaffold and Go templ-component-scaffold allow alternate layouts but still prescribe Tailwind and starter tokens. This contradicts plugin claims of fallback support for other projects. Verified instruction mismatch; no generated UI was evaluated.", + "references": [ + "plugins/astro-tools/skills/component-scaffold/SKILL.md:106", + "plugins/go-tools/skills/templ-component-scaffold/SKILL.md:39" + ], + "recommendation": "Read the target styling system and make starter classes conditional on the starter being present." + }, + { + "id": "F08", + "severity": 2, + "title": "Build freshness rule omits uncommitted edits", + "detail": "Astro perf-budget-check uses the last committed src timestamp versus dist mtime. An uncommitted source edit leaves the git log timestamp unchanged, so this method cannot establish working-tree artifact freshness. Static algorithm review; no production build or perf gate run.", + "references": [ + "plugins/astro-tools/skills/perf-budget-check/SKILL.md:30" + ], + "recommendation": "Use the repository build/cache fingerprint or rebuild before reporting working-tree budgets." + }, + { + "id": "F09", + "severity": 2, + "title": "Skill audit treats allowed-tools as a restrictive boundary", + "detail": "The audit says underscoping allowed-tools breaks runtime. Current Claude documentation describes it as an approval grant; separate restrictions govern tool removal. The body also assumes universal undertriggering without a model-specific evaluation.", + "references": [ + "plugins/code-tools/skills/skill-audit/SKILL.md:25", + "plugins/code-tools/skills/skill-audit/SKILL.md:30", + "https://code.claude.com/docs/en/skills" + ], + "recommendation": "Audit approval grants separately from restrictions and test triggering per host/model rather than using a permanent assumption." + }, + { + "id": "F10", + "severity": 1, + "title": "Pezza mark instructions have an unresolved exception", + "detail": "The hard rule says never filled/outlined, while the file map and production guidance explicitly provide official filled outlines for static placement. The intended distinction between altering artwork and using official assets should be explicit. No visual defect is claimed.", + "references": [ + "plugins/pezza-design-system/skills/pezza-design/SKILL.md:11", + "plugins/pezza-design-system/skills/pezza-design/SKILL.md:25" + ], + "recommendation": "State that official filled artwork is permitted and that the no-fill rule concerns modifying the stroke master." + }, + { + "id": "F11", + "severity": 1, + "title": "Ideation requires a second user override", + "detail": "The escape hatch requires pushing back once when the user says just move on, respecting only a second pushback. This adds friction for already explicit scope choices. Instruction review only, not a behavioral failure.", + "references": [ + "../product-dev/plugin/skills/product-ideation/SKILL.md:23" + ], + "recommendation": "Respect the first explicit override while recording unresolved assumptions." + } + ], + "entities": [ + { + "id": "skill:clownware-astro-tools:astro-pr-description", + "kind": "skill", + "name": "clownware-astro-tools:astro-pr-description", + "review_score": 100, + "finding_ids": [], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "1864d0f37042b612e71a5fb8080d45b65a7edb885802513b048910a7fe518c94", + "source_path": "plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-astro-tools:component-scaffold", + "kind": "skill", + "name": "clownware-astro-tools:component-scaffold", + "review_score": 90, + "finding_ids": [ + "F07" + ], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "4226a52cda2a2766e00bd50058f8ab6d919f06ba08f4b560b2efec2acd8d43d7", + "source_path": "plugins/astro-tools/skills/component-scaffold/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-astro-tools:perf-budget-check", + "kind": "skill", + "name": "clownware-astro-tools:perf-budget-check", + "review_score": 90, + "finding_ids": [ + "F08" + ], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "8177f34a5a63490345147a1f7b3dee90a992cf0065260855b7f124fbc82e06dc", + "source_path": "plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "plugin:clownware/clownware-astro-tools", + "kind": "plugin", + "name": "clownware-astro-tools", + "review_score": 100, + "finding_ids": [], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "ca083b99ba836d55e653e4621e7699bcd3bb05e900222d256c6a81f90ece2df3", + "source_path": "plugins/astro-tools", + "review_scope": "Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed.", + "behavior": "not evaluated end-to-end as an installed plugin", + "portability": "Codex import and host hook behavior not evaluated", + "version": "0.5.1", + "mean_skill_review_score": 93.3 + }, + { + "id": "skill:clownware-code-tools:a11y-audit", + "kind": "skill", + "name": "clownware-code-tools:a11y-audit", + "review_score": 90, + "finding_ids": [ + "F04" + ], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "dd665e406c69c2147362b506b74952ca105df85b9e46bdf2a225c868ae0eba78", + "source_path": "plugins/code-tools/skills/a11y-audit/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:adr", + "kind": "skill", + "name": "clownware-code-tools:adr", + "review_score": 100, + "finding_ids": [], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "3377e6ceb2add1e708b55f78a12cb6729c03ffe35716f8f69365beb752dcda65", + "source_path": "plugins/code-tools/skills/adr/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:arch-audit", + "kind": "skill", + "name": "clownware-code-tools:arch-audit", + "review_score": 100, + "finding_ids": [], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "7fd7ee54c0c055901d52bb86b5caf2b348b77ec8d20703389d52cdce86cfe53e", + "source_path": "plugins/code-tools/skills/arch-audit/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:audit-fix", + "kind": "skill", + "name": "clownware-code-tools:audit-fix", + "review_score": 100, + "finding_ids": [], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "396f9638b2a135990a631815658361edfc2e83431ae7e58be13868f454bb4ccb", + "source_path": "plugins/code-tools/skills/audit-fix/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:deps-audit", + "kind": "skill", + "name": "clownware-code-tools:deps-audit", + "review_score": 100, + "finding_ids": [], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "f13ac10c8eca417bf372d31aa70364e873ccf4e1c52618f5887e728ff74561c6", + "source_path": "plugins/code-tools/skills/deps-audit/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:design-audit", + "kind": "skill", + "name": "clownware-code-tools:design-audit", + "review_score": 100, + "finding_ids": [], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "4d524a51b9f65ee73c0717083dc490470551b2339b3aeb78f0923f9935df3d7f", + "source_path": "plugins/code-tools/skills/design-audit/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:devops-audit", + "kind": "skill", + "name": "clownware-code-tools:devops-audit", + "review_score": 100, + "finding_ids": [], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "f67762ecea63bdf4aa92fc11d0add1e4480ac5f015479b3526b852c539cd887d", + "source_path": "plugins/code-tools/skills/devops-audit/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:githits-research", + "kind": "skill", + "name": "clownware-code-tools:githits-research", + "review_score": 80, + "finding_ids": [ + "F01" + ], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "c2b7b95e685868912f5be32956a47060d6c29f4008534468e5a8f3bb2b744f80", + "source_path": "plugins/code-tools/skills/githits-research/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; mostly shared instructions/assets; host metadata still needs validation" + }, + { + "id": "skill:clownware-code-tools:perf-audit", + "kind": "skill", + "name": "clownware-code-tools:perf-audit", + "review_score": 100, + "finding_ids": [], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "9b5a4b26761da841f09bb0a7c6a21648f2f92c34d8b4d46c1aab793fa4be192d", + "source_path": "plugins/code-tools/skills/perf-audit/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:plugin-release", + "kind": "skill", + "name": "clownware-code-tools:plugin-release", + "review_score": 80, + "finding_ids": [ + "F02" + ], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "0550753289ab971a34f83d635388f0b5a730a8c607e557876f6c8fde76f385ae", + "source_path": "plugins/code-tools/skills/plugin-release/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:pr-description", + "kind": "skill", + "name": "clownware-code-tools:pr-description", + "review_score": 100, + "finding_ids": [], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "24a0209ed92579bc8e0de8a903e7121f2e73563312e2dedfc4c47df2017ada3b", + "source_path": "plugins/code-tools/skills/pr-description/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:root-cause-debug", + "kind": "skill", + "name": "clownware-code-tools:root-cause-debug", + "review_score": 100, + "finding_ids": [], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "1ca660de4395a3298a5b9fce04ed105b7abcd67e91d36adcb4490918673ead76", + "source_path": "plugins/code-tools/skills/root-cause-debug/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:security-audit", + "kind": "skill", + "name": "clownware-code-tools:security-audit", + "review_score": 100, + "finding_ids": [], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "1444d50627c59f7b575791f2d1858cbcae32abbe2675d51d52d12755e0cecd51", + "source_path": "plugins/code-tools/skills/security-audit/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:skill-audit", + "kind": "skill", + "name": "clownware-code-tools:skill-audit", + "review_score": 90, + "finding_ids": [ + "F09" + ], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "8aea144d2825ca726a73b4acabf54720101209a743150fc656ad25d0f2850f97", + "source_path": "plugins/code-tools/skills/skill-audit/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:skill-validate", + "kind": "skill", + "name": "clownware-code-tools:skill-validate", + "review_score": 100, + "finding_ids": [], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "69ed3c6f802f9927742549972d5c232bcf8811fae8258f17bb13cf1a46d0ba45", + "source_path": "plugins/code-tools/skills/skill-validate/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:test-audit", + "kind": "skill", + "name": "clownware-code-tools:test-audit", + "review_score": 100, + "finding_ids": [], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "43ecb97cffbd0b97498d60d95a22160551ebf090e90c2e35d7d1a26b16ae54b0", + "source_path": "plugins/code-tools/skills/test-audit/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-code-tools:test-scaffold", + "kind": "skill", + "name": "clownware-code-tools:test-scaffold", + "review_score": 90, + "finding_ids": [ + "F06" + ], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "c37228819aa8f9b028760b649b7b268fb184beb41ff43680b5916c51f87b2301", + "source_path": "plugins/code-tools/skills/test-scaffold/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "One blind Codex sample: 4/4 artifact criteria; 17 equivalent Node assertions reported passed; Vitest runner not executed; no Claude or baseline comparison.", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "plugin:clownware/clownware-code-tools", + "kind": "plugin", + "name": "clownware-code-tools", + "review_score": 70, + "finding_ids": [ + "F01", + "F05" + ], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "56d40f19a569206d22323355df6094fb828cac456d73ce3e14bc4ca1d6d1d973", + "source_path": "plugins/code-tools", + "review_scope": "Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed.", + "behavior": "not evaluated end-to-end as an installed plugin", + "portability": "Codex import and host hook behavior not evaluated", + "version": "0.15.2", + "mean_skill_review_score": 95.9 + }, + { + "id": "skill:clownware-go-tools:go-pr-description", + "kind": "skill", + "name": "clownware-go-tools:go-pr-description", + "review_score": 100, + "finding_ids": [], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "eb8dd9d874fad5c173c173794385c9fbc6776effcfab0642e511f87f4b35d255", + "source_path": "plugins/go-tools/skills/go-pr-description/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-go-tools:perf-budget-check", + "kind": "skill", + "name": "clownware-go-tools:perf-budget-check", + "review_score": 100, + "finding_ids": [], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "71706ef56c5c19c3f762ac09c2d52750e22ee51f15ae1e9347b18c83ccd55243", + "source_path": "plugins/go-tools/skills/perf-budget-check/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-go-tools:sqlc-query-scaffold", + "kind": "skill", + "name": "clownware-go-tools:sqlc-query-scaffold", + "review_score": 100, + "finding_ids": [], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "64cd484b136ce45257de0aafedf5ae51583a2ade5d0081c46ae04710b2b2525e", + "source_path": "plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-go-tools:templ-component-scaffold", + "kind": "skill", + "name": "clownware-go-tools:templ-component-scaffold", + "review_score": 90, + "finding_ids": [ + "F07" + ], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "dca6f0c633aabed98f581c3c57ae2b029cfcd7b480819043487470874a44c2fd", + "source_path": "plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-go-tools:test-scaffold", + "kind": "skill", + "name": "clownware-go-tools:test-scaffold", + "review_score": 90, + "finding_ids": [ + "F06" + ], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "39cff57ced34740011ab1a56142c14c0e831a145a9f4fcee1783394f6638dab4", + "source_path": "plugins/go-tools/skills/test-scaffold/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "plugin:clownware/clownware-go-tools", + "kind": "plugin", + "name": "clownware-go-tools", + "review_score": 100, + "finding_ids": [], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "8e992d4ffc3e8aa63c2945a551c195bdf0d62a3c84b0e8c3f053557a4f23eb83", + "source_path": "plugins/go-tools", + "review_scope": "Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed.", + "behavior": "not evaluated end-to-end as an installed plugin", + "portability": "Codex import and host hook behavior not evaluated", + "version": "0.3.2", + "mean_skill_review_score": 96.0 + }, + { + "id": "skill:pezza-design-system:pezza-design", + "kind": "skill", + "name": "pezza-design-system:pezza-design", + "review_score": 95, + "finding_ids": [ + "F10" + ], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "0b2dd7f0a0589d0274a1c87ccb1580dca731787d995675f39ff22f6ee43cc261", + "source_path": "plugins/pezza-design-system/skills/pezza-design/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; mostly shared instructions/assets; host metadata still needs validation" + }, + { + "id": "plugin:clownware/pezza-design-system", + "kind": "plugin", + "name": "pezza-design-system", + "review_score": 100, + "finding_ids": [], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "831d6c51b8e38c7d6dd28759c4defc7843e18557c282112d7ec6266276a55157", + "source_path": "plugins/pezza-design-system", + "review_scope": "Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed.", + "behavior": "not evaluated end-to-end as an installed plugin", + "portability": "Codex import and host hook behavior not evaluated", + "version": "0.5.2", + "mean_skill_review_score": 95.0 + }, + { + "id": "skill:clownware-rust-tools:gate-check", + "kind": "skill", + "name": "clownware-rust-tools:gate-check", + "review_score": 100, + "finding_ids": [], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "54b3ab256f248586373129d1f3e1a2ce86eb0dac44907310c1f66f758bb9e0b9", + "source_path": "plugins/rust-tools/skills/gate-check/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:clownware-rust-tools:test-scaffold", + "kind": "skill", + "name": "clownware-rust-tools:test-scaffold", + "review_score": 80, + "finding_ids": [ + "F03", + "F06" + ], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "fba993734a633d7c2f133658626829a32236f0bcefcf376f902fcb1c44f6394e", + "source_path": "plugins/rust-tools/skills/test-scaffold/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "plugin:clownware/clownware-rust-tools", + "kind": "plugin", + "name": "clownware-rust-tools", + "review_score": 100, + "finding_ids": [], + "revision": "8240e3bf37640939977c86e728dcd1fb64ebc24e", + "sha256": "dc591d07e51c487203297126bd028629ce51582c0fc69bd5415ec965663ca2d9", + "source_path": "plugins/rust-tools", + "review_scope": "Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed.", + "behavior": "not evaluated end-to-end as an installed plugin", + "portability": "Codex import and host hook behavior not evaluated", + "version": "0.1.1", + "mean_skill_review_score": 90.0 + }, + { + "id": "skill:product-dev:product-flow", + "kind": "skill", + "name": "product-dev:product-flow", + "review_score": 100, + "finding_ids": [], + "revision": "e7c6371fe38a1af156247693023d1e2e0b596516", + "sha256": "def6e397565747db072dde9074fde42a035f7a1809faab6fdb3ddf87e969611c", + "source_path": "plugin/skills/product-flow/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:product-dev:product-ideation", + "kind": "skill", + "name": "product-dev:product-ideation", + "review_score": 95, + "finding_ids": [ + "F11" + ], + "revision": "e7c6371fe38a1af156247693023d1e2e0b596516", + "sha256": "dd143fdc28937cfb5c64c6acb7aa7d44036b86f071b1f7f5000adf02e2b8e7fb", + "source_path": "plugin/skills/product-ideation/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:product-dev:status", + "kind": "skill", + "name": "product-dev:status", + "review_score": 100, + "finding_ids": [], + "revision": "e7c6371fe38a1af156247693023d1e2e0b596516", + "sha256": "9fad3c8f9a25355a16de5e1426c9262d3058caf91f19ff1ef1596c5063d494ae", + "source_path": "plugin/skills/status/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:product-dev:tech-spec", + "kind": "skill", + "name": "product-dev:tech-spec", + "review_score": 100, + "finding_ids": [], + "revision": "e7c6371fe38a1af156247693023d1e2e0b596516", + "sha256": "b5953bf4ed599ba0f4a073cc6bcd571b0dc7f6a7fbd1eb3b5f12eb12d2f405aa", + "source_path": "plugin/skills/tech-spec/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "skill:product-dev:ux-optimization", + "kind": "skill", + "name": "product-dev:ux-optimization", + "review_score": 100, + "finding_ids": [], + "revision": "e7c6371fe38a1af156247693023d1e2e0b596516", + "sha256": "8e7278e2e3e6d273def9dfe1f64f672430e286d627faea5b47200782bce61314", + "source_path": "plugin/skills/ux-optimization/SKILL.md", + "review_scope": "Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.", + "behavior": "not evaluated end-to-end; static entrypoint review only", + "portability": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review" + }, + { + "id": "plugin:clownware/product-dev", + "kind": "plugin", + "name": "product-dev", + "review_score": 100, + "finding_ids": [], + "revision": "e7c6371fe38a1af156247693023d1e2e0b596516", + "sha256": "acc4d4ba218d35ac9828aa52ba225b7554f924b6761f8ca1d271520edabab1f1", + "source_path": "plugin", + "review_scope": "Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed.", + "behavior": "not evaluated end-to-end as an installed plugin", + "portability": "Codex import and host hook behavior not evaluated", + "version": "0.5.0", + "mean_skill_review_score": 99.0 + } + ], + "installations": [ + { + "plugin": "clownware-astro-tools", + "local_source_version": "0.5.1", + "installed_claude_versions": [ + "0.4.0" + ], + "interpretation": "Source-versus-local-install drift only; remote release availability not checked." + }, + { + "plugin": "clownware-code-tools", + "local_source_version": "0.15.2", + "installed_claude_versions": [ + "0.14.0" + ], + "interpretation": "Source-versus-local-install drift only; remote release availability not checked." + }, + { + "plugin": "clownware-go-tools", + "local_source_version": "0.3.2", + "installed_claude_versions": [ + "0.2.0" + ], + "interpretation": "Source-versus-local-install drift only; remote release availability not checked." + }, + { + "plugin": "pezza-design-system", + "local_source_version": "0.5.2", + "installed_claude_versions": [ + "0.5.1" + ], + "interpretation": "Source-versus-local-install drift only; remote release availability not checked." + }, + { + "plugin": "clownware-rust-tools", + "local_source_version": "0.1.1", + "installed_claude_versions": [ + "0.1.0" + ], + "interpretation": "Source-versus-local-install drift only; remote release availability not checked." + }, + { + "plugin": "product-dev", + "local_source_version": "0.5.0", + "installed_claude_versions": [ + "0.1.0" + ], + "interpretation": "Source-versus-local-install drift only; remote release availability not checked." + } + ], + "evidence": { + "prefetch_commands": 107, + "probe_runs": 642, + "probe_exit_stderr_nonempty_checks_passed": 642, + "note": "Exit/noise checks do not establish semantic correctness. Astro-only detection is a separate failing semantic fixture.", + "claude_validator_passed": 5, + "claude_validator_total": 6, + "blind_sample": { + "skill": "clownware-code-tools:test-scaffold", + "artifact_criteria_met": 4, + "artifact_criteria_total": 4, + "vitest_executed": false, + "baseline_comparison": false, + "claude_executed": false + } + }, + "publication": { + "status": "pending", + "endpoint": "https://ops.chris-d8c.workers.dev/ingest" + } +} diff --git a/docs/audits/2026-09-05/blind-ground-truth.json b/docs/audits/2026-09-05/blind-ground-truth.json new file mode 100644 index 0000000..52e891e --- /dev/null +++ b/docs/audits/2026-09-05/blind-ground-truth.json @@ -0,0 +1 @@ +{"js":{"request":"Write working unit tests for parseCount, including valid input, invalid input, and unsafe integers. I want executable assertions, not placeholders.","criteria":["valid input assertion","invalid input throw assertion","unsafe integer throw assertion","no todo or skipped test bodies"],"grading":"one point for each criterion; inspect emitted files; execution separately unvalidated if vitest unavailable"}} diff --git a/docs/audits/2026-09-05/blind-sample.test.ts.txt b/docs/audits/2026-09-05/blind-sample.test.ts.txt new file mode 100644 index 0000000..82a2199 --- /dev/null +++ b/docs/audits/2026-09-05/blind-sample.test.ts.txt @@ -0,0 +1,27 @@ +import { describe, expect, it } from 'vitest'; +import { parseCount } from './parse'; + +describe('parseCount', () => { + it.each([ + ['0', 0], + ['42', 42], + ['00042', 42], + ['9007199254740991', Number.MAX_SAFE_INTEGER], + ])('parses valid input %s', (input, expected) => { + expect(parseCount(input)).toBe(expected); + }); + + it.each(['', '-1', '+1', '1.5', ' 1', '1 ', '1\n', '1e3', 'abc', '12']) ( + 'rejects invalid input %j', + (input) => { + expect(() => parseCount(input)).toThrow('invalid count'); + }, + ); + + it.each(['9007199254740992', '9007199254740993', '9'.repeat(400)])( + 'rejects unsafe integer input %s', + (input) => { + expect(() => parseCount(input)).toThrow('unsafe count'); + }, + ); +}); diff --git a/docs/audits/2026-09-05/ops-payload.json b/docs/audits/2026-09-05/ops-payload.json new file mode 100644 index 0000000..01489c1 --- /dev/null +++ b/docs/audits/2026-09-05/ops-payload.json @@ -0,0 +1,1917 @@ +{ + "entities": [ + { + "id": "skill:clownware-astro-tools:astro-pr-description", + "kind": "skill", + "name": "clownware-astro-tools:astro-pr-description", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-astro-tools:component-scaffold", + "kind": "skill", + "name": "clownware-astro-tools:component-scaffold", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-astro-tools:perf-budget-check", + "kind": "skill", + "name": "clownware-astro-tools:perf-budget-check", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "plugin:clownware/clownware-astro-tools", + "kind": "plugin", + "name": "clownware-astro-tools", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:a11y-audit", + "kind": "skill", + "name": "clownware-code-tools:a11y-audit", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:adr", + "kind": "skill", + "name": "clownware-code-tools:adr", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:arch-audit", + "kind": "skill", + "name": "clownware-code-tools:arch-audit", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:audit-fix", + "kind": "skill", + "name": "clownware-code-tools:audit-fix", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:deps-audit", + "kind": "skill", + "name": "clownware-code-tools:deps-audit", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:design-audit", + "kind": "skill", + "name": "clownware-code-tools:design-audit", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:devops-audit", + "kind": "skill", + "name": "clownware-code-tools:devops-audit", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:githits-research", + "kind": "skill", + "name": "clownware-code-tools:githits-research", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:perf-audit", + "kind": "skill", + "name": "clownware-code-tools:perf-audit", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:plugin-release", + "kind": "skill", + "name": "clownware-code-tools:plugin-release", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:pr-description", + "kind": "skill", + "name": "clownware-code-tools:pr-description", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:root-cause-debug", + "kind": "skill", + "name": "clownware-code-tools:root-cause-debug", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:security-audit", + "kind": "skill", + "name": "clownware-code-tools:security-audit", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:skill-audit", + "kind": "skill", + "name": "clownware-code-tools:skill-audit", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:skill-validate", + "kind": "skill", + "name": "clownware-code-tools:skill-validate", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:test-audit", + "kind": "skill", + "name": "clownware-code-tools:test-audit", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-code-tools:test-scaffold", + "kind": "skill", + "name": "clownware-code-tools:test-scaffold", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "plugin:clownware/clownware-code-tools", + "kind": "plugin", + "name": "clownware-code-tools", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-go-tools:go-pr-description", + "kind": "skill", + "name": "clownware-go-tools:go-pr-description", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-go-tools:perf-budget-check", + "kind": "skill", + "name": "clownware-go-tools:perf-budget-check", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-go-tools:sqlc-query-scaffold", + "kind": "skill", + "name": "clownware-go-tools:sqlc-query-scaffold", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-go-tools:templ-component-scaffold", + "kind": "skill", + "name": "clownware-go-tools:templ-component-scaffold", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-go-tools:test-scaffold", + "kind": "skill", + "name": "clownware-go-tools:test-scaffold", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "plugin:clownware/clownware-go-tools", + "kind": "plugin", + "name": "clownware-go-tools", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:pezza-design-system:pezza-design", + "kind": "skill", + "name": "pezza-design-system:pezza-design", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "plugin:clownware/pezza-design-system", + "kind": "plugin", + "name": "pezza-design-system", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-rust-tools:gate-check", + "kind": "skill", + "name": "clownware-rust-tools:gate-check", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:clownware-rust-tools:test-scaffold", + "kind": "skill", + "name": "clownware-rust-tools:test-scaffold", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "plugin:clownware/clownware-rust-tools", + "kind": "plugin", + "name": "clownware-rust-tools", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:product-dev:product-flow", + "kind": "skill", + "name": "product-dev:product-flow", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:product-dev:product-ideation", + "kind": "skill", + "name": "product-dev:product-ideation", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:product-dev:status", + "kind": "skill", + "name": "product-dev:status", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:product-dev:tech-spec", + "kind": "skill", + "name": "product-dev:tech-spec", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "skill:product-dev:ux-optimization", + "kind": "skill", + "name": "product-dev:ux-optimization", + "category": "plugin_skill", + "owner": "clownware" + }, + { + "id": "plugin:clownware/product-dev", + "kind": "plugin", + "name": "product-dev", + "category": "plugin_skill", + "owner": "clownware" + } + ], + "signals": [ + { + "entityId": "skill:clownware-astro-tools:astro-pr-description", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-astro-tools:astro-pr-description", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-astro-tools:astro-pr-description", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"1864d0f37042b612e71a5fb8080d45b65a7edb885802513b048910a7fe518c94\",\"source_path\":\"plugins/astro-tools/skills/astro-pr-description/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-astro-tools:astro-pr-description", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-astro-tools:astro-pr-description", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-astro-tools:component-scaffold", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 90 + }, + { + "entityId": "skill:clownware-astro-tools:component-scaffold", + "metric": "skill_audit.findings", + "valueText": "[{\"id\":\"F07\",\"severity\":2,\"title\":\"Generic scaffold fallback still mandates starter styling\",\"detail\":\"Astro component-scaffold and Go templ-component-scaffold allow alternate layouts but still prescribe Tailwind and starter tokens. This contradicts plugin claims of fallback support for other projects. Verified instruction mismatch; no generated UI was evaluated.\",\"references\":[\"plugins/astro-tools/skills/component-scaffold/SKILL.md:106\",\"plugins/go-tools/skills/templ-component-scaffold/SKILL.md:39\"],\"recommendation\":\"Read the target styling system and make starter classes conditional on the starter being present.\"}]", + "severity": 2, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 1 + }, + { + "entityId": "skill:clownware-astro-tools:component-scaffold", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"4226a52cda2a2766e00bd50058f8ab6d919f06ba08f4b560b2efec2acd8d43d7\",\"source_path\":\"plugins/astro-tools/skills/component-scaffold/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-astro-tools:component-scaffold", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-astro-tools:component-scaffold", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-astro-tools:perf-budget-check", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 90 + }, + { + "entityId": "skill:clownware-astro-tools:perf-budget-check", + "metric": "skill_audit.findings", + "valueText": "[{\"id\":\"F08\",\"severity\":2,\"title\":\"Build freshness rule omits uncommitted edits\",\"detail\":\"Astro perf-budget-check uses the last committed src timestamp versus dist mtime. An uncommitted source edit leaves the git log timestamp unchanged, so this method cannot establish working-tree artifact freshness. Static algorithm review; no production build or perf gate run.\",\"references\":[\"plugins/astro-tools/skills/perf-budget-check/SKILL.md:30\"],\"recommendation\":\"Use the repository build/cache fingerprint or rebuild before reporting working-tree budgets.\"}]", + "severity": 2, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 1 + }, + { + "entityId": "skill:clownware-astro-tools:perf-budget-check", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"8177f34a5a63490345147a1f7b3dee90a992cf0065260855b7f124fbc82e06dc\",\"source_path\":\"plugins/astro-tools/skills/perf-budget-check/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-astro-tools:perf-budget-check", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-astro-tools:perf-budget-check", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "plugin:clownware/clownware-astro-tools", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "plugin:clownware/clownware-astro-tools", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "plugin:clownware/clownware-astro-tools", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"ca083b99ba836d55e653e4621e7699bcd3bb05e900222d256c6a81f90ece2df3\",\"source_path\":\"plugins/astro-tools\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "plugin:clownware/clownware-astro-tools", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end as an installed plugin", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "plugin:clownware/clownware-astro-tools", + "metric": "skill_audit.portability", + "valueText": "Codex import and host hook behavior not evaluated", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:a11y-audit", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 90 + }, + { + "entityId": "skill:clownware-code-tools:a11y-audit", + "metric": "skill_audit.findings", + "valueText": "[{\"id\":\"F04\",\"severity\":2,\"title\":\"Accessibility inventory misses Astro and templ\",\"detail\":\"The inventory omits .astro and .templ yet instructs the agent to stop on zero. A fixture containing index.astro returns 0 files and the stop instruction. This is a detection gap in stacks maintained by this marketplace.\",\"references\":[\"plugins/code-tools/skills/a11y-audit/SKILL.md:11\"],\"recommendation\":\"Include supported template extensions and treat zero probe matches as a hypothesis until the target surface is checked.\"}]", + "severity": 2, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 1 + }, + { + "entityId": "skill:clownware-code-tools:a11y-audit", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"dd665e406c69c2147362b506b74952ca105df85b9e46bdf2a225c868ae0eba78\",\"source_path\":\"plugins/code-tools/skills/a11y-audit/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:a11y-audit", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:a11y-audit", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:adr", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:adr", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:adr", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"3377e6ceb2add1e708b55f78a12cb6729c03ffe35716f8f69365beb752dcda65\",\"source_path\":\"plugins/code-tools/skills/adr/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:adr", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:adr", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:arch-audit", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:arch-audit", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:arch-audit", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"7fd7ee54c0c055901d52bb86b5caf2b348b77ec8d20703389d52cdce86cfe53e\",\"source_path\":\"plugins/code-tools/skills/arch-audit/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:arch-audit", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:arch-audit", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:audit-fix", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:audit-fix", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:audit-fix", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"396f9638b2a135990a631815658361edfc2e83431ae7e58be13868f454bb4ccb\",\"source_path\":\"plugins/code-tools/skills/audit-fix/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:audit-fix", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:audit-fix", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:deps-audit", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:deps-audit", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:deps-audit", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"f13ac10c8eca417bf372d31aa70364e873ccf4e1c52618f5887e728ff74561c6\",\"source_path\":\"plugins/code-tools/skills/deps-audit/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:deps-audit", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:deps-audit", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:design-audit", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:design-audit", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:design-audit", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"4d524a51b9f65ee73c0717083dc490470551b2339b3aeb78f0923f9935df3d7f\",\"source_path\":\"plugins/code-tools/skills/design-audit/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:design-audit", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:design-audit", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:devops-audit", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:devops-audit", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:devops-audit", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"f67762ecea63bdf4aa92fc11d0add1e4480ac5f015479b3526b852c539cd887d\",\"source_path\":\"plugins/code-tools/skills/devops-audit/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:devops-audit", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:devops-audit", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:githits-research", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 80 + }, + { + "entityId": "skill:clownware-code-tools:githits-research", + "metric": "skill_audit.findings", + "valueText": "[{\"id\":\"F01\",\"severity\":3,\"title\":\"GitHits frontmatter fails the authoritative validator\",\"detail\":\"The unquoted description contains colon-space sequences. Both PyYAML and claude plugin validate reject it. Claude validator reports metadata will be dropped at runtime. Catalog CI only regex-checks field presence, so it misses this defect.\",\"references\":[\"plugins/code-tools/skills/githits-research/SKILL.md:3\",\".github/workflows/validate.yml:180\"],\"recommendation\":\"Use a YAML block scalar and run a real YAML parser and host validator in CI.\"}]", + "severity": 3, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 1 + }, + { + "entityId": "skill:clownware-code-tools:githits-research", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"c2b7b95e685868912f5be32956a47060d6c29f4008534468e5a8f3bb2b744f80\",\"source_path\":\"plugins/code-tools/skills/githits-research/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:githits-research", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:githits-research", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; mostly shared instructions/assets; host metadata still needs validation", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:perf-audit", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:perf-audit", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:perf-audit", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"9b5a4b26761da841f09bb0a7c6a21648f2f92c34d8b4d46c1aab793fa4be192d\",\"source_path\":\"plugins/code-tools/skills/perf-audit/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:perf-audit", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:perf-audit", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:plugin-release", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 80 + }, + { + "entityId": "skill:clownware-code-tools:plugin-release", + "metric": "skill_audit.findings", + "valueText": "[{\"id\":\"F02\",\"severity\":3,\"title\":\"Release dry-run can discard pre-existing edits\",\"detail\":\"The dry-run edits real files and then runs git checkout -- . A scratch Git reproduction lost an existing userNote field. The dirty-tree warning does not preserve the original bytes.\",\"references\":[\"plugins/code-tools/skills/plugin-release/SKILL.md:80\"],\"recommendation\":\"Generate the proposed diff in a temporary copy, or restore an exact pre-run snapshot without discarding user changes.\"}]", + "severity": 3, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 1 + }, + { + "entityId": "skill:clownware-code-tools:plugin-release", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"0550753289ab971a34f83d635388f0b5a730a8c607e557876f6c8fde76f385ae\",\"source_path\":\"plugins/code-tools/skills/plugin-release/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:plugin-release", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:plugin-release", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:pr-description", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:pr-description", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:pr-description", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"24a0209ed92579bc8e0de8a903e7121f2e73563312e2dedfc4c47df2017ada3b\",\"source_path\":\"plugins/code-tools/skills/pr-description/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:pr-description", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:pr-description", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:root-cause-debug", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:root-cause-debug", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:root-cause-debug", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"1ca660de4395a3298a5b9fce04ed105b7abcd67e91d36adcb4490918673ead76\",\"source_path\":\"plugins/code-tools/skills/root-cause-debug/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:root-cause-debug", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:root-cause-debug", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:security-audit", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:security-audit", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:security-audit", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"1444d50627c59f7b575791f2d1858cbcae32abbe2675d51d52d12755e0cecd51\",\"source_path\":\"plugins/code-tools/skills/security-audit/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:security-audit", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:security-audit", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:skill-audit", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 90 + }, + { + "entityId": "skill:clownware-code-tools:skill-audit", + "metric": "skill_audit.findings", + "valueText": "[{\"id\":\"F09\",\"severity\":2,\"title\":\"Skill audit treats allowed-tools as a restrictive boundary\",\"detail\":\"The audit says underscoping allowed-tools breaks runtime. Current Claude documentation describes it as an approval grant; separate restrictions govern tool removal. The body also assumes universal undertriggering without a model-specific evaluation.\",\"references\":[\"plugins/code-tools/skills/skill-audit/SKILL.md:25\",\"plugins/code-tools/skills/skill-audit/SKILL.md:30\",\"https://code.claude.com/docs/en/skills\"],\"recommendation\":\"Audit approval grants separately from restrictions and test triggering per host/model rather than using a permanent assumption.\"}]", + "severity": 2, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 1 + }, + { + "entityId": "skill:clownware-code-tools:skill-audit", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"8aea144d2825ca726a73b4acabf54720101209a743150fc656ad25d0f2850f97\",\"source_path\":\"plugins/code-tools/skills/skill-audit/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:skill-audit", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:skill-audit", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:skill-validate", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:skill-validate", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:skill-validate", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"69ed3c6f802f9927742549972d5c232bcf8811fae8258f17bb13cf1a46d0ba45\",\"source_path\":\"plugins/code-tools/skills/skill-validate/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:skill-validate", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:skill-validate", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:test-audit", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-code-tools:test-audit", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-code-tools:test-audit", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"43ecb97cffbd0b97498d60d95a22160551ebf090e90c2e35d7d1a26b16ae54b0\",\"source_path\":\"plugins/code-tools/skills/test-audit/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:test-audit", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:test-audit", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:test-scaffold", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 90 + }, + { + "entityId": "skill:clownware-code-tools:test-scaffold", + "metric": "skill_audit.findings", + "valueText": "[{\"id\":\"F06\",\"severity\":2,\"title\":\"Test-scaffold discovery promises more than the body permits\",\"detail\":\"JS, Go and Rust descriptions trigger on write tests/add coverage, while bodies mandate todo/skip/ignore stubs and forbid assertions. One blind Codex sample correctly prioritized an explicit request for assertions: 4/4 artifact criteria met. This finding is the contradictory contract, not a demonstrated failure of that sample.\",\"references\":[\"plugins/code-tools/skills/test-scaffold/SKILL.md:79\",\"plugins/go-tools/skills/test-scaffold/SKILL.md:74\",\"plugins/rust-tools/skills/test-scaffold/SKILL.md:75\"],\"recommendation\":\"Limit discovery to explicit scaffolding, or make complete tests the default when requested and stubs an explicit mode.\"}]", + "severity": 2, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 1 + }, + { + "entityId": "skill:clownware-code-tools:test-scaffold", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"c37228819aa8f9b028760b649b7b268fb184beb41ff43680b5916c51f87b2301\",\"source_path\":\"plugins/code-tools/skills/test-scaffold/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:test-scaffold", + "metric": "skill_audit.behavior", + "valueText": "One blind Codex sample: 4/4 artifact criteria; 17 equivalent Node assertions reported passed; Vitest runner not executed; no Claude or baseline comparison.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-code-tools:test-scaffold", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "plugin:clownware/clownware-code-tools", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 70 + }, + { + "entityId": "plugin:clownware/clownware-code-tools", + "metric": "skill_audit.findings", + "valueText": "[{\"id\":\"F01\",\"severity\":3,\"title\":\"GitHits frontmatter fails the authoritative validator\",\"detail\":\"The unquoted description contains colon-space sequences. Both PyYAML and claude plugin validate reject it. Claude validator reports metadata will be dropped at runtime. Catalog CI only regex-checks field presence, so it misses this defect.\",\"references\":[\"plugins/code-tools/skills/githits-research/SKILL.md:3\",\".github/workflows/validate.yml:180\"],\"recommendation\":\"Use a YAML block scalar and run a real YAML parser and host validator in CI.\"},{\"id\":\"F05\",\"severity\":2,\"title\":\"Git guard does not cover common executable forms\",\"detail\":\"Payload-only tests deny git commit --no-verify but silently allow /usr/bin/git commit --no-verify and env git commit --no-verify. No commit commands were executed. This is incomplete convenience-hook coverage, not proof that repository CI can be bypassed.\",\"references\":[\"plugins/code-tools/hooks/git-guard.sh:36\"],\"recommendation\":\"Narrow the documented guarantee; normalize supported invocation forms and retain authoritative checks outside the agent hook.\"}]", + "severity": 3, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 2 + }, + { + "entityId": "plugin:clownware/clownware-code-tools", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"56d40f19a569206d22323355df6094fb828cac456d73ce3e14bc4ca1d6d1d973\",\"source_path\":\"plugins/code-tools\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "plugin:clownware/clownware-code-tools", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end as an installed plugin", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "plugin:clownware/clownware-code-tools", + "metric": "skill_audit.portability", + "valueText": "Codex import and host hook behavior not evaluated", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-go-tools:go-pr-description", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-go-tools:go-pr-description", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-go-tools:go-pr-description", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"eb8dd9d874fad5c173c173794385c9fbc6776effcfab0642e511f87f4b35d255\",\"source_path\":\"plugins/go-tools/skills/go-pr-description/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-go-tools:go-pr-description", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-go-tools:go-pr-description", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-go-tools:perf-budget-check", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-go-tools:perf-budget-check", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-go-tools:perf-budget-check", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"71706ef56c5c19c3f762ac09c2d52750e22ee51f15ae1e9347b18c83ccd55243\",\"source_path\":\"plugins/go-tools/skills/perf-budget-check/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-go-tools:perf-budget-check", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-go-tools:perf-budget-check", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-go-tools:sqlc-query-scaffold", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-go-tools:sqlc-query-scaffold", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-go-tools:sqlc-query-scaffold", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"64cd484b136ce45257de0aafedf5ae51583a2ade5d0081c46ae04710b2b2525e\",\"source_path\":\"plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-go-tools:sqlc-query-scaffold", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-go-tools:sqlc-query-scaffold", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-go-tools:templ-component-scaffold", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 90 + }, + { + "entityId": "skill:clownware-go-tools:templ-component-scaffold", + "metric": "skill_audit.findings", + "valueText": "[{\"id\":\"F07\",\"severity\":2,\"title\":\"Generic scaffold fallback still mandates starter styling\",\"detail\":\"Astro component-scaffold and Go templ-component-scaffold allow alternate layouts but still prescribe Tailwind and starter tokens. This contradicts plugin claims of fallback support for other projects. Verified instruction mismatch; no generated UI was evaluated.\",\"references\":[\"plugins/astro-tools/skills/component-scaffold/SKILL.md:106\",\"plugins/go-tools/skills/templ-component-scaffold/SKILL.md:39\"],\"recommendation\":\"Read the target styling system and make starter classes conditional on the starter being present.\"}]", + "severity": 2, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 1 + }, + { + "entityId": "skill:clownware-go-tools:templ-component-scaffold", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"dca6f0c633aabed98f581c3c57ae2b029cfcd7b480819043487470874a44c2fd\",\"source_path\":\"plugins/go-tools/skills/templ-component-scaffold/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-go-tools:templ-component-scaffold", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-go-tools:templ-component-scaffold", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-go-tools:test-scaffold", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 90 + }, + { + "entityId": "skill:clownware-go-tools:test-scaffold", + "metric": "skill_audit.findings", + "valueText": "[{\"id\":\"F06\",\"severity\":2,\"title\":\"Test-scaffold discovery promises more than the body permits\",\"detail\":\"JS, Go and Rust descriptions trigger on write tests/add coverage, while bodies mandate todo/skip/ignore stubs and forbid assertions. One blind Codex sample correctly prioritized an explicit request for assertions: 4/4 artifact criteria met. This finding is the contradictory contract, not a demonstrated failure of that sample.\",\"references\":[\"plugins/code-tools/skills/test-scaffold/SKILL.md:79\",\"plugins/go-tools/skills/test-scaffold/SKILL.md:74\",\"plugins/rust-tools/skills/test-scaffold/SKILL.md:75\"],\"recommendation\":\"Limit discovery to explicit scaffolding, or make complete tests the default when requested and stubs an explicit mode.\"}]", + "severity": 2, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 1 + }, + { + "entityId": "skill:clownware-go-tools:test-scaffold", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"39cff57ced34740011ab1a56142c14c0e831a145a9f4fcee1783394f6638dab4\",\"source_path\":\"plugins/go-tools/skills/test-scaffold/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-go-tools:test-scaffold", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-go-tools:test-scaffold", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "plugin:clownware/clownware-go-tools", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "plugin:clownware/clownware-go-tools", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "plugin:clownware/clownware-go-tools", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"8e992d4ffc3e8aa63c2945a551c195bdf0d62a3c84b0e8c3f053557a4f23eb83\",\"source_path\":\"plugins/go-tools\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "plugin:clownware/clownware-go-tools", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end as an installed plugin", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "plugin:clownware/clownware-go-tools", + "metric": "skill_audit.portability", + "valueText": "Codex import and host hook behavior not evaluated", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:pezza-design-system:pezza-design", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 95 + }, + { + "entityId": "skill:pezza-design-system:pezza-design", + "metric": "skill_audit.findings", + "valueText": "[{\"id\":\"F10\",\"severity\":1,\"title\":\"Pezza mark instructions have an unresolved exception\",\"detail\":\"The hard rule says never filled/outlined, while the file map and production guidance explicitly provide official filled outlines for static placement. The intended distinction between altering artwork and using official assets should be explicit. No visual defect is claimed.\",\"references\":[\"plugins/pezza-design-system/skills/pezza-design/SKILL.md:11\",\"plugins/pezza-design-system/skills/pezza-design/SKILL.md:25\"],\"recommendation\":\"State that official filled artwork is permitted and that the no-fill rule concerns modifying the stroke master.\"}]", + "severity": 1, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 1 + }, + { + "entityId": "skill:pezza-design-system:pezza-design", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"0b2dd7f0a0589d0274a1c87ccb1580dca731787d995675f39ff22f6ee43cc261\",\"source_path\":\"plugins/pezza-design-system/skills/pezza-design/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:pezza-design-system:pezza-design", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:pezza-design-system:pezza-design", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; mostly shared instructions/assets; host metadata still needs validation", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "plugin:clownware/pezza-design-system", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "plugin:clownware/pezza-design-system", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "plugin:clownware/pezza-design-system", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"831d6c51b8e38c7d6dd28759c4defc7843e18557c282112d7ec6266276a55157\",\"source_path\":\"plugins/pezza-design-system\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "plugin:clownware/pezza-design-system", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end as an installed plugin", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "plugin:clownware/pezza-design-system", + "metric": "skill_audit.portability", + "valueText": "Codex import and host hook behavior not evaluated", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-rust-tools:gate-check", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "skill:clownware-rust-tools:gate-check", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "skill:clownware-rust-tools:gate-check", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"54b3ab256f248586373129d1f3e1a2ce86eb0dac44907310c1f66f758bb9e0b9\",\"source_path\":\"plugins/rust-tools/skills/gate-check/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-rust-tools:gate-check", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-rust-tools:gate-check", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-rust-tools:test-scaffold", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 80 + }, + { + "entityId": "skill:clownware-rust-tools:test-scaffold", + "metric": "skill_audit.findings", + "valueText": "[{\"id\":\"F03\",\"severity\":2,\"title\":\"Rust scaffold verification does not compile tests\",\"detail\":\"A fixture with a type error inside an ignored cfg(test) test passes cargo check (0) and fails cargo test --no-run (101). The skill promises scaffold compilation but selects the weaker command.\",\"references\":[\"plugins/rust-tools/skills/test-scaffold/SKILL.md:70\"],\"recommendation\":\"Use cargo test --no-run or cargo check --tests with the owning crate and feature configuration.\"},{\"id\":\"F06\",\"severity\":2,\"title\":\"Test-scaffold discovery promises more than the body permits\",\"detail\":\"JS, Go and Rust descriptions trigger on write tests/add coverage, while bodies mandate todo/skip/ignore stubs and forbid assertions. One blind Codex sample correctly prioritized an explicit request for assertions: 4/4 artifact criteria met. This finding is the contradictory contract, not a demonstrated failure of that sample.\",\"references\":[\"plugins/code-tools/skills/test-scaffold/SKILL.md:79\",\"plugins/go-tools/skills/test-scaffold/SKILL.md:74\",\"plugins/rust-tools/skills/test-scaffold/SKILL.md:75\"],\"recommendation\":\"Limit discovery to explicit scaffolding, or make complete tests the default when requested and stubs an explicit mode.\"}]", + "severity": 2, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 2 + }, + { + "entityId": "skill:clownware-rust-tools:test-scaffold", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"fba993734a633d7c2f133658626829a32236f0bcefcf376f902fcb1c44f6394e\",\"source_path\":\"plugins/rust-tools/skills/test-scaffold/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-rust-tools:test-scaffold", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:clownware-rust-tools:test-scaffold", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "plugin:clownware/clownware-rust-tools", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "plugin:clownware/clownware-rust-tools", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "plugin:clownware/clownware-rust-tools", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"8240e3bf37640939977c86e728dcd1fb64ebc24e\",\"sha256\":\"dc591d07e51c487203297126bd028629ce51582c0fc69bd5415ec965663ca2d9\",\"source_path\":\"plugins/rust-tools\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "plugin:clownware/clownware-rust-tools", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end as an installed plugin", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "plugin:clownware/clownware-rust-tools", + "metric": "skill_audit.portability", + "valueText": "Codex import and host hook behavior not evaluated", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:product-dev:product-flow", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "skill:product-dev:product-flow", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "skill:product-dev:product-flow", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"e7c6371fe38a1af156247693023d1e2e0b596516\",\"sha256\":\"def6e397565747db072dde9074fde42a035f7a1809faab6fdb3ddf87e969611c\",\"source_path\":\"plugin/skills/product-flow/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:product-dev:product-flow", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:product-dev:product-flow", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:product-dev:product-ideation", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 95 + }, + { + "entityId": "skill:product-dev:product-ideation", + "metric": "skill_audit.findings", + "valueText": "[{\"id\":\"F11\",\"severity\":1,\"title\":\"Ideation requires a second user override\",\"detail\":\"The escape hatch requires pushing back once when the user says just move on, respecting only a second pushback. This adds friction for already explicit scope choices. Instruction review only, not a behavioral failure.\",\"references\":[\"../product-dev/plugin/skills/product-ideation/SKILL.md:23\"],\"recommendation\":\"Respect the first explicit override while recording unresolved assumptions.\"}]", + "severity": 1, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 1 + }, + { + "entityId": "skill:product-dev:product-ideation", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"e7c6371fe38a1af156247693023d1e2e0b596516\",\"sha256\":\"dd143fdc28937cfb5c64c6acb7aa7d44036b86f071b1f7f5000adf02e2b8e7fb\",\"source_path\":\"plugin/skills/product-ideation/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:product-dev:product-ideation", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:product-dev:product-ideation", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:product-dev:status", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "skill:product-dev:status", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "skill:product-dev:status", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"e7c6371fe38a1af156247693023d1e2e0b596516\",\"sha256\":\"9fad3c8f9a25355a16de5e1426c9262d3058caf91f19ff1ef1596c5063d494ae\",\"source_path\":\"plugin/skills/status/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:product-dev:status", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:product-dev:status", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:product-dev:tech-spec", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "skill:product-dev:tech-spec", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "skill:product-dev:tech-spec", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"e7c6371fe38a1af156247693023d1e2e0b596516\",\"sha256\":\"b5953bf4ed599ba0f4a073cc6bcd571b0dc7f6a7fbd1eb3b5f12eb12d2f405aa\",\"source_path\":\"plugin/skills/tech-spec/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:product-dev:tech-spec", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:product-dev:tech-spec", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:product-dev:ux-optimization", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "skill:product-dev:ux-optimization", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "skill:product-dev:ux-optimization", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"e7c6371fe38a1af156247693023d1e2e0b596516\",\"sha256\":\"8e7278e2e3e6d273def9dfe1f64f672430e286d627faea5b47200782bce61314\",\"source_path\":\"plugin/skills/ux-optimization/SKILL.md\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Full SKILL.md read; YAML validation; all actual inline prefetches run in 2 shells \\u00d7 3 contexts where present. Supporting resources sampled; not a complete asset/script audit.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:product-dev:ux-optimization", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end; static entrypoint review only", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "skill:product-dev:ux-optimization", + "metric": "skill_audit.portability", + "valueText": "Codex/Claude parity not evaluated; Claude execution syntax or tool metadata needs adapter review", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "plugin:clownware/product-dev", + "metric": "skill_audit.review_score", + "valueText": "Static review only; 100 means no deductions in this rubric, not proven capability.", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 100 + }, + { + "entityId": "plugin:clownware/product-dev", + "metric": "skill_audit.findings", + "valueText": "[]", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca", + "valueNum": 0 + }, + { + "entityId": "plugin:clownware/product-dev", + "metric": "skill_audit.provenance", + "valueText": "{\"run\":\"owned-skills-2026-09-05\",\"rubric\":\"static-review-v1\",\"revision\":\"e7c6371fe38a1af156247693023d1e2e0b596516\",\"sha256\":\"acc4d4ba218d35ac9828aa52ba225b7554f924b6761f8ca1d271520edabab1f1\",\"source_path\":\"plugin\",\"reviewer\":\"Codex session; human-readable expert review; one independent Codex sample\",\"scope\":\"Manifest and entrypoints; authoritative Claude validator; hook shell syntax; targeted git-guard payload cases. Package score excludes skill findings except structural validation. Product scripts/assets not comprehensively executed.\"}", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "plugin:clownware/product-dev", + "metric": "skill_audit.behavior", + "valueText": "not evaluated end-to-end as an installed plugin", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + }, + { + "entityId": "plugin:clownware/product-dev", + "metric": "skill_audit.portability", + "valueText": "Codex import and host hook behavior not evaluated", + "severity": 0, + "observedAt": 1788617535, + "dedupeKey": "owned-skills-2026-09-05:b10887664e1b104d67186ffb0172b5e9b0eaa860191eb20617cefb74fc8c8dca" + } + ] +} diff --git a/docs/audits/2026-09-05/plugin-validation.json b/docs/audits/2026-09-05/plugin-validation.json new file mode 100644 index 0000000..edf0c28 --- /dev/null +++ b/docs/audits/2026-09-05/plugin-validation.json @@ -0,0 +1,32 @@ +[ + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools", + "exit": 0, + "output": "Validating plugin manifest: /Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/.claude-plugin/plugin.json\n\n\u2714 Validation passed\n" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools", + "exit": 1, + "output": "Validating plugin manifest: /Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/.claude-plugin/plugin.json\n\nValidating skill: /Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/githits-research/SKILL.md\n\n\u2718 Found 1 error:\n\n \u276f frontmatter: YAML frontmatter failed to parse: YAML Parse error: Unexpected token. At runtime this skill loads with empty metadata (all frontmatter fields silently dropped).\n\n\u2718 Validation failed\n" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools", + "exit": 0, + "output": "Validating plugin manifest: /Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/.claude-plugin/plugin.json\n\n\u2714 Validation passed\n" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/pezza-design-system", + "exit": 0, + "output": "Validating plugin manifest: /Users/chrispezza/Dev/clownware/plugins/plugins/pezza-design-system/.claude-plugin/plugin.json\n\n\u2714 Validation passed\n" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools", + "exit": 0, + "output": "Validating plugin manifest: /Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/.claude-plugin/plugin.json\n\n\u2714 Validation passed\n" + }, + { + "path": "/Users/chrispezza/Dev/clownware/product-dev/plugin", + "exit": 0, + "output": "Validating plugin manifest: /Users/chrispezza/Dev/clownware/product-dev/plugin/.claude-plugin/plugin.json\n\n\u2714 Validation passed\n" + } +] \ No newline at end of file diff --git a/docs/audits/2026-09-05/probe-results.json b/docs/audits/2026-09-05/probe-results.json new file mode 100644 index 0000000..0e0cc0d --- /dev/null +++ b/docs/audits/2026-09-05/probe-results.json @@ -0,0 +1,7706 @@ +[ + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 11, + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "main\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 11, + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "main\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 11, + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "master\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 11, + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "master\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 11, + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/astro-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "master\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 11, + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/astro-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "master\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 14, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git log \"$BASE\"...HEAD --oneline 2>/dev/null); echo \"${out:-(no commits diverged from $BASE)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no commits diverged from main)\n", + "stdout_bytes": 32, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 14, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git log \"$BASE\"...HEAD --oneline 2>/dev/null); echo \"${out:-(no commits diverged from $BASE)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no commits diverged from main)\n", + "stdout_bytes": 32, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 14, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git log \"$BASE\"...HEAD --oneline 2>/dev/null); echo \"${out:-(no commits diverged from $BASE)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no commits diverged from master)\n", + "stdout_bytes": 34, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 14, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git log \"$BASE\"...HEAD --oneline 2>/dev/null); echo \"${out:-(no commits diverged from $BASE)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no commits diverged from master)\n", + "stdout_bytes": 34, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 14, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git log \"$BASE\"...HEAD --oneline 2>/dev/null); echo \"${out:-(no commits diverged from $BASE)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/astro-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no commits diverged from master)\n", + "stdout_bytes": 34, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 14, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git log \"$BASE\"...HEAD --oneline 2>/dev/null); echo \"${out:-(no commits diverged from $BASE)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/astro-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no commits diverged from master)\n", + "stdout_bytes": 34, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 17, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git diff \"$BASE\"...HEAD --stat 2>/dev/null); echo \"${out:-(no diff found)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 17, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git diff \"$BASE\"...HEAD --stat 2>/dev/null); echo \"${out:-(no diff found)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 17, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git diff \"$BASE\"...HEAD --stat 2>/dev/null); echo \"${out:-(no diff found)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 17, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git diff \"$BASE\"...HEAD --stat 2>/dev/null); echo \"${out:-(no diff found)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 17, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git diff \"$BASE\"...HEAD --stat 2>/dev/null); echo \"${out:-(no diff found)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/astro-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 17, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git diff \"$BASE\"...HEAD --stat 2>/dev/null); echo \"${out:-(no diff found)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/astro-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 20, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=$(git diff \"$BASE\"...HEAD 2>/dev/null); if [ -z \"$d\" ]; then echo \"(no diff found)\"; elif [ ${#d} -gt 20000 ]; then printf '%.20000s' \"$d\"; printf '\\n[diff truncated at 20k chars - run git diff \"%s\"...HEAD for the rest]\\n' \"$BASE\"; else printf '%s\\n' \"$d\"; fi", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 20, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=$(git diff \"$BASE\"...HEAD 2>/dev/null); if [ -z \"$d\" ]; then echo \"(no diff found)\"; elif [ ${#d} -gt 20000 ]; then printf '%.20000s' \"$d\"; printf '\\n[diff truncated at 20k chars - run git diff \"%s\"...HEAD for the rest]\\n' \"$BASE\"; else printf '%s\\n' \"$d\"; fi", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 20, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=$(git diff \"$BASE\"...HEAD 2>/dev/null); if [ -z \"$d\" ]; then echo \"(no diff found)\"; elif [ ${#d} -gt 20000 ]; then printf '%.20000s' \"$d\"; printf '\\n[diff truncated at 20k chars - run git diff \"%s\"...HEAD for the rest]\\n' \"$BASE\"; else printf '%s\\n' \"$d\"; fi", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 20, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=$(git diff \"$BASE\"...HEAD 2>/dev/null); if [ -z \"$d\" ]; then echo \"(no diff found)\"; elif [ ${#d} -gt 20000 ]; then printf '%.20000s' \"$d\"; printf '\\n[diff truncated at 20k chars - run git diff \"%s\"...HEAD for the rest]\\n' \"$BASE\"; else printf '%s\\n' \"$d\"; fi", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 20, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=$(git diff \"$BASE\"...HEAD 2>/dev/null); if [ -z \"$d\" ]; then echo \"(no diff found)\"; elif [ ${#d} -gt 20000 ]; then printf '%.20000s' \"$d\"; printf '\\n[diff truncated at 20k chars - run git diff \"%s\"...HEAD for the rest]\\n' \"$BASE\"; else printf '%s\\n' \"$d\"; fi", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/astro-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/astro-pr-description/SKILL.md", + "line": 20, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=$(git diff \"$BASE\"...HEAD 2>/dev/null); if [ -z \"$d\" ]; then echo \"(no diff found)\"; elif [ ${#d} -gt 20000 ]; then printf '%.20000s' \"$d\"; printf '\\n[diff truncated at 20k chars - run git diff \"%s\"...HEAD for the rest]\\n' \"$BASE\"; else printf '%s\\n' \"$d\"; fi", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/astro-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/component-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find src/components -type f \\( -name \"*.astro\" -o -name \"*.tsx\" \\) 2>/dev/null | sort | head -40); echo \"${out:-no src/components directory found \u2014 check the project layout before scaffolding}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no src/components directory found \u2014 check the project layout before scaffolding\n", + "stdout_bytes": 82, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/component-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find src/components -type f \\( -name \"*.astro\" -o -name \"*.tsx\" \\) 2>/dev/null | sort | head -40); echo \"${out:-no src/components directory found \u2014 check the project layout before scaffolding}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no src/components directory found \u2014 check the project layout before scaffolding\n", + "stdout_bytes": 82, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/component-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find src/components -type f \\( -name \"*.astro\" -o -name \"*.tsx\" \\) 2>/dev/null | sort | head -40); echo \"${out:-no src/components directory found \u2014 check the project layout before scaffolding}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no src/components directory found \u2014 check the project layout before scaffolding\n", + "stdout_bytes": 82, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/component-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find src/components -type f \\( -name \"*.astro\" -o -name \"*.tsx\" \\) 2>/dev/null | sort | head -40); echo \"${out:-no src/components directory found \u2014 check the project layout before scaffolding}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no src/components directory found \u2014 check the project layout before scaffolding\n", + "stdout_bytes": 82, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/component-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find src/components -type f \\( -name \"*.astro\" -o -name \"*.tsx\" \\) 2>/dev/null | sort | head -40); echo \"${out:-no src/components directory found \u2014 check the project layout before scaffolding}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/astro-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "src/components/ThemeSetup.astro\nsrc/components/a11y/SkipLink.astro\nsrc/components/atoms/AnimatedGradientText.astro\nsrc/components/atoms/Badge.astro\nsrc/components/atoms/Button.astro\nsrc/components/atoms/CounterBadge.astro\nsrc/components/atoms/CursorSpotlight.astro\nsrc/components/atoms/Icon.astro\nsrc/components/atoms/Image.astro\nsrc/components/atoms/ReadingProgress.astro\nsrc/components/atoms/ScrollReveal.astro\nsrc/components/atoms/SheenEyebrow.astro\nsrc/components/atoms/SocialLink.astro\nsrc/components/atoms/ThemeToggle.astro\nsrc/components/atoms/Tooltip.astro\nsrc/components/islands/MotionLab.tsx\nsrc/components/islands/SignalsCounter.tsx\nsrc/components/mdx/Blockquote.astro\nsrc/components/mdx/Callout.astro\nsrc/components/mdx/CodeFromFile.astro\nsrc/components/mdx/Figure.astro\nsrc/components/mdx/Grid.astro\nsrc/components/mdx/Link.tsx\nsrc/components/molecules/Card.astro\nsrc/components/molecules/ColorTokenSwatch.astro\nsrc/components/molecules/ContactForm.astro\nsrc/components/molecules/Dialog.astro\nsrc/components/molecules/ExpandableFeatureCard.astro\nsrc/components/molecules/Head.astro\nsrc/components/molecules/PaletteBand.astro\nsrc/components/molecules/PostCard.astro\nsrc/components/molecules/ProjectCard.astro\nsrc/components/molecules/ScrollSpy.astro\nsrc/components/molecules/SectionSeparator.astro\nsrc/components/molecules/ShowcaseExample.astro\nsrc/components/molecules/Tabs.astro\nsrc/components/molecules/TypeSpecimen.astro\nsrc/components/structural/Container.astro\nsrc/components/struct", + "stdout_bytes": 1555, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/component-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find src/components -type f \\( -name \"*.astro\" -o -name \"*.tsx\" \\) 2>/dev/null | sort | head -40); echo \"${out:-no src/components directory found \u2014 check the project layout before scaffolding}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/astro-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "src/components/ThemeSetup.astro\nsrc/components/a11y/SkipLink.astro\nsrc/components/atoms/AnimatedGradientText.astro\nsrc/components/atoms/Badge.astro\nsrc/components/atoms/Button.astro\nsrc/components/atoms/CounterBadge.astro\nsrc/components/atoms/CursorSpotlight.astro\nsrc/components/atoms/Icon.astro\nsrc/components/atoms/Image.astro\nsrc/components/atoms/ReadingProgress.astro\nsrc/components/atoms/ScrollReveal.astro\nsrc/components/atoms/SheenEyebrow.astro\nsrc/components/atoms/SocialLink.astro\nsrc/components/atoms/ThemeToggle.astro\nsrc/components/atoms/Tooltip.astro\nsrc/components/islands/MotionLab.tsx\nsrc/components/islands/SignalsCounter.tsx\nsrc/components/mdx/Blockquote.astro\nsrc/components/mdx/Callout.astro\nsrc/components/mdx/CodeFromFile.astro\nsrc/components/mdx/Figure.astro\nsrc/components/mdx/Grid.astro\nsrc/components/mdx/Link.tsx\nsrc/components/molecules/Card.astro\nsrc/components/molecules/ColorTokenSwatch.astro\nsrc/components/molecules/ContactForm.astro\nsrc/components/molecules/Dialog.astro\nsrc/components/molecules/ExpandableFeatureCard.astro\nsrc/components/molecules/Head.astro\nsrc/components/molecules/PaletteBand.astro\nsrc/components/molecules/PostCard.astro\nsrc/components/molecules/ProjectCard.astro\nsrc/components/molecules/ScrollSpy.astro\nsrc/components/molecules/SectionSeparator.astro\nsrc/components/molecules/ShowcaseExample.astro\nsrc/components/molecules/Tabs.astro\nsrc/components/molecules/TypeSpecimen.astro\nsrc/components/structural/Container.astro\nsrc/components/struct", + "stdout_bytes": 1555, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 11, + "command": "out=$(ls budgets.json budget-overrides.json lighthouserc.json lighthouserc.mobile.json 2>/dev/null); echo \"${out:-none \u2014 this repo does not carry the starter budget tooling; report that and stop (perf-audit is the universal alternative)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none \u2014 this repo does not carry the starter budget tooling; report that and stop (perf-audit is the universal alternative)\n", + "stdout_bytes": 125, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 11, + "command": "out=$(ls budgets.json budget-overrides.json lighthouserc.json lighthouserc.mobile.json 2>/dev/null); echo \"${out:-none \u2014 this repo does not carry the starter budget tooling; report that and stop (perf-audit is the universal alternative)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none \u2014 this repo does not carry the starter budget tooling; report that and stop (perf-audit is the universal alternative)\n", + "stdout_bytes": 125, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 11, + "command": "out=$(ls budgets.json budget-overrides.json lighthouserc.json lighthouserc.mobile.json 2>/dev/null); echo \"${out:-none \u2014 this repo does not carry the starter budget tooling; report that and stop (perf-audit is the universal alternative)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none \u2014 this repo does not carry the starter budget tooling; report that and stop (perf-audit is the universal alternative)\n", + "stdout_bytes": 125, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 11, + "command": "out=$(ls budgets.json budget-overrides.json lighthouserc.json lighthouserc.mobile.json 2>/dev/null); echo \"${out:-none \u2014 this repo does not carry the starter budget tooling; report that and stop (perf-audit is the universal alternative)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none \u2014 this repo does not carry the starter budget tooling; report that and stop (perf-audit is the universal alternative)\n", + "stdout_bytes": 125, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 11, + "command": "out=$(ls budgets.json budget-overrides.json lighthouserc.json lighthouserc.mobile.json 2>/dev/null); echo \"${out:-none \u2014 this repo does not carry the starter budget tooling; report that and stop (perf-audit is the universal alternative)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/astro-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "budget-overrides.json\nbudgets.json\nlighthouserc.json\nlighthouserc.mobile.json\n", + "stdout_bytes": 78, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 11, + "command": "out=$(ls budgets.json budget-overrides.json lighthouserc.json lighthouserc.mobile.json 2>/dev/null); echo \"${out:-none \u2014 this repo does not carry the starter budget tooling; report that and stop (perf-audit is the universal alternative)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/astro-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "budget-overrides.json\nbudgets.json\nlighthouserc.json\nlighthouserc.mobile.json\n", + "stdout_bytes": 78, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 12, + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if k in ('perf:budgets','budgets:validate','images:gate','perf:baseline','perf:lhci','build')))\" 2>/dev/null); echo \"${out:-package.json missing or no gate scripts}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "package.json missing or no gate scripts\n", + "stdout_bytes": 40, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 12, + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if k in ('perf:budgets','budgets:validate','images:gate','perf:baseline','perf:lhci','build')))\" 2>/dev/null); echo \"${out:-package.json missing or no gate scripts}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "package.json missing or no gate scripts\n", + "stdout_bytes": 40, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 12, + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if k in ('perf:budgets','budgets:validate','images:gate','perf:baseline','perf:lhci','build')))\" 2>/dev/null); echo \"${out:-package.json missing or no gate scripts}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "package.json missing or no gate scripts\n", + "stdout_bytes": 40, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 12, + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if k in ('perf:budgets','budgets:validate','images:gate','perf:baseline','perf:lhci','build')))\" 2>/dev/null); echo \"${out:-package.json missing or no gate scripts}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "package.json missing or no gate scripts\n", + "stdout_bytes": 40, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 12, + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if k in ('perf:budgets','budgets:validate','images:gate','perf:baseline','perf:lhci','build')))\" 2>/dev/null); echo \"${out:-package.json missing or no gate scripts}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/astro-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "build: pnpm run env:validate && pnpm run tokens:build && astro build\nbudgets:validate: tsx scripts/src/validate-budget-overrides.ts\nperf:budgets: tsx scripts/src/track-performance-budgets.ts\nperf:baseline: tsx scripts/src/baseline-performance.ts\nperf:lhci: lhci autorun\nimages:gate: tsx scripts/src/check-image-budget.ts\n", + "stdout_bytes": 321, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 12, + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if k in ('perf:budgets','budgets:validate','images:gate','perf:baseline','perf:lhci','build')))\" 2>/dev/null); echo \"${out:-package.json missing or no gate scripts}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/astro-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "build: pnpm run env:validate && pnpm run tokens:build && astro build\nbudgets:validate: tsx scripts/src/validate-budget-overrides.ts\nperf:budgets: tsx scripts/src/track-performance-budgets.ts\nperf:baseline: tsx scripts/src/baseline-performance.ts\nperf:lhci: lhci autorun\nimages:gate: tsx scripts/src/check-image-budget.ts\n", + "stdout_bytes": 321, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 13, + "command": "out=$(ls -d dist 2>/dev/null && find dist -name \"*.js\" -path \"*_astro*\" 2>/dev/null | head -1 >/dev/null && echo \"dist/ present\"); echo \"${out:-no dist/ \u2014 a build is required before size gates mean anything}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no dist/ \u2014 a build is required before size gates mean anything\n", + "stdout_bytes": 65, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 13, + "command": "out=$(ls -d dist 2>/dev/null && find dist -name \"*.js\" -path \"*_astro*\" 2>/dev/null | head -1 >/dev/null && echo \"dist/ present\"); echo \"${out:-no dist/ \u2014 a build is required before size gates mean anything}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no dist/ \u2014 a build is required before size gates mean anything\n", + "stdout_bytes": 65, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 13, + "command": "out=$(ls -d dist 2>/dev/null && find dist -name \"*.js\" -path \"*_astro*\" 2>/dev/null | head -1 >/dev/null && echo \"dist/ present\"); echo \"${out:-no dist/ \u2014 a build is required before size gates mean anything}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no dist/ \u2014 a build is required before size gates mean anything\n", + "stdout_bytes": 65, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 13, + "command": "out=$(ls -d dist 2>/dev/null && find dist -name \"*.js\" -path \"*_astro*\" 2>/dev/null | head -1 >/dev/null && echo \"dist/ present\"); echo \"${out:-no dist/ \u2014 a build is required before size gates mean anything}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no dist/ \u2014 a build is required before size gates mean anything\n", + "stdout_bytes": 65, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 13, + "command": "out=$(ls -d dist 2>/dev/null && find dist -name \"*.js\" -path \"*_astro*\" 2>/dev/null | head -1 >/dev/null && echo \"dist/ present\"); echo \"${out:-no dist/ \u2014 a build is required before size gates mean anything}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/astro-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "dist\ndist/ present\n", + "stdout_bytes": 19, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 13, + "command": "out=$(ls -d dist 2>/dev/null && find dist -name \"*.js\" -path \"*_astro*\" 2>/dev/null | head -1 >/dev/null && echo \"dist/ present\"); echo \"${out:-no dist/ \u2014 a build is required before size gates mean anything}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/astro-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "dist\ndist/ present\n", + "stdout_bytes": 19, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 14, + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "main\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 14, + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "main\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 14, + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "detached or not a git repo\n", + "stdout_bytes": 27, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 14, + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "detached or not a git repo\n", + "stdout_bytes": 27, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 14, + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/astro-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "master\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/astro-tools/skills/perf-budget-check/SKILL.md", + "line": 14, + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/astro-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "master\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/a11y-audit/SKILL.md", + "line": 11, + "command": "out=$(find . \\( -name \"*.html\" -o -name \"*.jsx\" -o -name \"*.tsx\" -o -name \"*.vue\" -o -name \"*.svelte\" \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | wc -l | tr -d ' '); echo \"$out files (0 means no markup surface \u2014 say so and stop)\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "45 files (0 means no markup surface \u2014 say so and stop)\n", + "stdout_bytes": 57, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/a11y-audit/SKILL.md", + "line": 11, + "command": "out=$(find . \\( -name \"*.html\" -o -name \"*.jsx\" -o -name \"*.tsx\" -o -name \"*.vue\" -o -name \"*.svelte\" \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | wc -l | tr -d ' '); echo \"$out files (0 means no markup surface \u2014 say so and stop)\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "45 files (0 means no markup surface \u2014 say so and stop)\n", + "stdout_bytes": 57, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/a11y-audit/SKILL.md", + "line": 11, + "command": "out=$(find . \\( -name \"*.html\" -o -name \"*.jsx\" -o -name \"*.tsx\" -o -name \"*.vue\" -o -name \"*.svelte\" \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | wc -l | tr -d ' '); echo \"$out files (0 means no markup surface \u2014 say so and stop)\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "0 files (0 means no markup surface \u2014 say so and stop)\n", + "stdout_bytes": 56, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/a11y-audit/SKILL.md", + "line": 11, + "command": "out=$(find . \\( -name \"*.html\" -o -name \"*.jsx\" -o -name \"*.tsx\" -o -name \"*.vue\" -o -name \"*.svelte\" \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | wc -l | tr -d ' '); echo \"$out files (0 means no markup surface \u2014 say so and stop)\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "0 files (0 means no markup surface \u2014 say so and stop)\n", + "stdout_bytes": 56, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/a11y-audit/SKILL.md", + "line": 11, + "command": "out=$(find . \\( -name \"*.html\" -o -name \"*.jsx\" -o -name \"*.tsx\" -o -name \"*.vue\" -o -name \"*.svelte\" \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | wc -l | tr -d ' '); echo \"$out files (0 means no markup surface \u2014 say so and stop)\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "10 files (0 means no markup surface \u2014 say so and stop)\n", + "stdout_bytes": 57, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/a11y-audit/SKILL.md", + "line": 11, + "command": "out=$(find . \\( -name \"*.html\" -o -name \"*.jsx\" -o -name \"*.tsx\" -o -name \"*.vue\" -o -name \"*.svelte\" \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | wc -l | tr -d ' '); echo \"$out files (0 means no markup surface \u2014 say so and stop)\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "10 files (0 means no markup surface \u2014 say so and stop)\n", + "stdout_bytes": 57, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/a11y-audit/SKILL.md", + "line": 12, + "command": "out=$(grep -lE '\"react\"|\"preact\"|\"vue\"|\"svelte\"' package.json 2>/dev/null; find . -maxdepth 2 -name \"*.jsx\" -o -maxdepth 2 -name \"*.vue\" 2>/dev/null | head -1); echo \"${out:-plain HTML or undetected \u2014 sweep both attribute spellings}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "plain HTML or undetected \u2014 sweep both attribute spellings\n", + "stdout_bytes": 60, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/a11y-audit/SKILL.md", + "line": 12, + "command": "out=$(grep -lE '\"react\"|\"preact\"|\"vue\"|\"svelte\"' package.json 2>/dev/null; find . -maxdepth 2 -name \"*.jsx\" -o -maxdepth 2 -name \"*.vue\" 2>/dev/null | head -1); echo \"${out:-plain HTML or undetected \u2014 sweep both attribute spellings}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "plain HTML or undetected \u2014 sweep both attribute spellings\n", + "stdout_bytes": 60, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/a11y-audit/SKILL.md", + "line": 12, + "command": "out=$(grep -lE '\"react\"|\"preact\"|\"vue\"|\"svelte\"' package.json 2>/dev/null; find . -maxdepth 2 -name \"*.jsx\" -o -maxdepth 2 -name \"*.vue\" 2>/dev/null | head -1); echo \"${out:-plain HTML or undetected \u2014 sweep both attribute spellings}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "plain HTML or undetected \u2014 sweep both attribute spellings\n", + "stdout_bytes": 60, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/a11y-audit/SKILL.md", + "line": 12, + "command": "out=$(grep -lE '\"react\"|\"preact\"|\"vue\"|\"svelte\"' package.json 2>/dev/null; find . -maxdepth 2 -name \"*.jsx\" -o -maxdepth 2 -name \"*.vue\" 2>/dev/null | head -1); echo \"${out:-plain HTML or undetected \u2014 sweep both attribute spellings}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "plain HTML or undetected \u2014 sweep both attribute spellings\n", + "stdout_bytes": 60, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/a11y-audit/SKILL.md", + "line": 12, + "command": "out=$(grep -lE '\"react\"|\"preact\"|\"vue\"|\"svelte\"' package.json 2>/dev/null; find . -maxdepth 2 -name \"*.jsx\" -o -maxdepth 2 -name \"*.vue\" 2>/dev/null | head -1); echo \"${out:-plain HTML or undetected \u2014 sweep both attribute spellings}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "plain HTML or undetected \u2014 sweep both attribute spellings\n", + "stdout_bytes": 60, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/a11y-audit/SKILL.md", + "line": 12, + "command": "out=$(grep -lE '\"react\"|\"preact\"|\"vue\"|\"svelte\"' package.json 2>/dev/null; find . -maxdepth 2 -name \"*.jsx\" -o -maxdepth 2 -name \"*.vue\" 2>/dev/null | head -1); echo \"${out:-plain HTML or undetected \u2014 sweep both attribute spellings}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "plain HTML or undetected \u2014 sweep both attribute spellings\n", + "stdout_bytes": 60, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/a11y-audit/SKILL.md", + "line": 13, + "command": "out=$(grep -rlE 'onClick|onclick=|@click|on:click' --include='*.html' --include='*.jsx' --include='*.tsx' --include='*.vue' --include='*.svelte' . 2>/dev/null | grep -v node_modules | head -8); echo \"${out:-none found}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "./plugins/pezza-design-system/skills/pezza-design/ui_kits/app/AddPanel.jsx\n./plugins/pezza-design-system/skills/pezza-design/ui_kits/app/RecordCard.jsx\n./plugins/pezza-design-system/skills/pezza-design/ui_kits/app/Sidebar.jsx\n./plugins/pezza-design-system/skills/pezza-design/ui_kits/app/AppShell.jsx\n./plugins/pezza-design-system/skills/pezza-design/ui_kits/site/SiteApp.jsx\n./plugins/pezza-design-system/skills/pezza-design/components/music/music.card.html\n./plugins/pezza-design-system/skills/pezza-design/components/music/MetaRow.jsx\n./plugins/pezza-design-system/skills/pezza-design/components/forms/Switch.jsx\n", + "stdout_bytes": 616, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/a11y-audit/SKILL.md", + "line": 13, + "command": "out=$(grep -rlE 'onClick|onclick=|@click|on:click' --include='*.html' --include='*.jsx' --include='*.tsx' --include='*.vue' --include='*.svelte' . 2>/dev/null | grep -v node_modules | head -8); echo \"${out:-none found}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "./plugins/pezza-design-system/skills/pezza-design/ui_kits/app/AddPanel.jsx\n./plugins/pezza-design-system/skills/pezza-design/ui_kits/app/RecordCard.jsx\n./plugins/pezza-design-system/skills/pezza-design/ui_kits/app/Sidebar.jsx\n./plugins/pezza-design-system/skills/pezza-design/ui_kits/app/AppShell.jsx\n./plugins/pezza-design-system/skills/pezza-design/ui_kits/site/SiteApp.jsx\n./plugins/pezza-design-system/skills/pezza-design/components/music/music.card.html\n./plugins/pezza-design-system/skills/pezza-design/components/music/MetaRow.jsx\n./plugins/pezza-design-system/skills/pezza-design/components/forms/Switch.jsx\n", + "stdout_bytes": 616, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/a11y-audit/SKILL.md", + "line": 13, + "command": "out=$(grep -rlE 'onClick|onclick=|@click|on:click' --include='*.html' --include='*.jsx' --include='*.tsx' --include='*.vue' --include='*.svelte' . 2>/dev/null | grep -v node_modules | head -8); echo \"${out:-none found}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/a11y-audit/SKILL.md", + "line": 13, + "command": "out=$(grep -rlE 'onClick|onclick=|@click|on:click' --include='*.html' --include='*.jsx' --include='*.tsx' --include='*.vue' --include='*.svelte' . 2>/dev/null | grep -v node_modules | head -8); echo \"${out:-none found}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/a11y-audit/SKILL.md", + "line": 13, + "command": "out=$(grep -rlE 'onClick|onclick=|@click|on:click' --include='*.html' --include='*.jsx' --include='*.tsx' --include='*.vue' --include='*.svelte' . 2>/dev/null | grep -v node_modules | head -8); echo \"${out:-none found}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/a11y-audit/SKILL.md", + "line": 13, + "command": "out=$(grep -rlE 'onClick|onclick=|@click|on:click' --include='*.html' --include='*.jsx' --include='*.tsx' --include='*.vue' --include='*.svelte' . 2>/dev/null | grep -v node_modules | head -8); echo \"${out:-none found}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 11, + "command": "out=$(ls docs/adr/ 2>/dev/null | grep -oE '^[0-9]+' | sort -n | tail -1); echo \"${out:-none}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 11, + "command": "out=$(ls docs/adr/ 2>/dev/null | grep -oE '^[0-9]+' | sort -n | tail -1); echo \"${out:-none}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 11, + "command": "out=$(ls docs/adr/ 2>/dev/null | grep -oE '^[0-9]+' | sort -n | tail -1); echo \"${out:-none}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 11, + "command": "out=$(ls docs/adr/ 2>/dev/null | grep -oE '^[0-9]+' | sort -n | tail -1); echo \"${out:-none}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 11, + "command": "out=$(ls docs/adr/ 2>/dev/null | grep -oE '^[0-9]+' | sort -n | tail -1); echo \"${out:-none}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "005\n", + "stdout_bytes": 4, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 11, + "command": "out=$(ls docs/adr/ 2>/dev/null | grep -oE '^[0-9]+' | sort -n | tail -1); echo \"${out:-none}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "005\n", + "stdout_bytes": 4, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 12, + "command": "test -f docs/adr/template.md && echo \"yes \u2014 read it before writing\" || echo \"no \u2014 use default format\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no \u2014 use default format\n", + "stdout_bytes": 26, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 12, + "command": "test -f docs/adr/template.md && echo \"yes \u2014 read it before writing\" || echo \"no \u2014 use default format\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no \u2014 use default format\n", + "stdout_bytes": 26, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 12, + "command": "test -f docs/adr/template.md && echo \"yes \u2014 read it before writing\" || echo \"no \u2014 use default format\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no \u2014 use default format\n", + "stdout_bytes": 26, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 12, + "command": "test -f docs/adr/template.md && echo \"yes \u2014 read it before writing\" || echo \"no \u2014 use default format\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no \u2014 use default format\n", + "stdout_bytes": 26, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 12, + "command": "test -f docs/adr/template.md && echo \"yes \u2014 read it before writing\" || echo \"no \u2014 use default format\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no \u2014 use default format\n", + "stdout_bytes": 26, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 12, + "command": "test -f docs/adr/template.md && echo \"yes \u2014 read it before writing\" || echo \"no \u2014 use default format\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no \u2014 use default format\n", + "stdout_bytes": 26, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 13, + "command": "out=$(ls docs/adr/ 2>/dev/null | grep '\\.md$' | grep -v template); echo \"${out:-no existing ADRs}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no existing ADRs\n", + "stdout_bytes": 17, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 13, + "command": "out=$(ls docs/adr/ 2>/dev/null | grep '\\.md$' | grep -v template); echo \"${out:-no existing ADRs}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no existing ADRs\n", + "stdout_bytes": 17, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 13, + "command": "out=$(ls docs/adr/ 2>/dev/null | grep '\\.md$' | grep -v template); echo \"${out:-no existing ADRs}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no existing ADRs\n", + "stdout_bytes": 17, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 13, + "command": "out=$(ls docs/adr/ 2>/dev/null | grep '\\.md$' | grep -v template); echo \"${out:-no existing ADRs}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no existing ADRs\n", + "stdout_bytes": 17, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 13, + "command": "out=$(ls docs/adr/ 2>/dev/null | grep '\\.md$' | grep -v template); echo \"${out:-no existing ADRs}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "001-read-mostly-system-of-record.md\n002-append-only-signals.md\n003-static-poller-array.md\n004-public-shell-private-config.md\n005-signal-latest-pointer.md\n", + "stdout_bytes": 154, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 13, + "command": "out=$(ls docs/adr/ 2>/dev/null | grep '\\.md$' | grep -v template); echo \"${out:-no existing ADRs}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "001-read-mostly-system-of-record.md\n002-append-only-signals.md\n003-static-poller-array.md\n004-public-shell-private-config.md\n005-signal-latest-pointer.md\n", + "stdout_bytes": 154, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 14, + "command": "test -d docs/adr && echo \"yes\" || echo \"no \u2014 create docs/adr/ first\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no \u2014 create docs/adr/ first\n", + "stdout_bytes": 30, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 14, + "command": "test -d docs/adr && echo \"yes\" || echo \"no \u2014 create docs/adr/ first\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no \u2014 create docs/adr/ first\n", + "stdout_bytes": 30, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 14, + "command": "test -d docs/adr && echo \"yes\" || echo \"no \u2014 create docs/adr/ first\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no \u2014 create docs/adr/ first\n", + "stdout_bytes": 30, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 14, + "command": "test -d docs/adr && echo \"yes\" || echo \"no \u2014 create docs/adr/ first\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no \u2014 create docs/adr/ first\n", + "stdout_bytes": 30, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 14, + "command": "test -d docs/adr && echo \"yes\" || echo \"no \u2014 create docs/adr/ first\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "yes\n", + "stdout_bytes": 4, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/adr/SKILL.md", + "line": 14, + "command": "test -d docs/adr && echo \"yes\" || echo \"no \u2014 create docs/adr/ first\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "yes\n", + "stdout_bytes": 4, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 11, + "command": "out=$(ls docs/adr/ docs/decisions/ adr/ 2>/dev/null | head -5); echo \"${out:-none found \u2014 infer decisions from configs, README, and code}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found \u2014 infer decisions from configs, README, and code\n", + "stdout_bytes": 62, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 11, + "command": "out=$(ls docs/adr/ docs/decisions/ adr/ 2>/dev/null | head -5); echo \"${out:-none found \u2014 infer decisions from configs, README, and code}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found \u2014 infer decisions from configs, README, and code\n", + "stdout_bytes": 62, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 11, + "command": "out=$(ls docs/adr/ docs/decisions/ adr/ 2>/dev/null | head -5); echo \"${out:-none found \u2014 infer decisions from configs, README, and code}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found \u2014 infer decisions from configs, README, and code\n", + "stdout_bytes": 62, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 11, + "command": "out=$(ls docs/adr/ docs/decisions/ adr/ 2>/dev/null | head -5); echo \"${out:-none found \u2014 infer decisions from configs, README, and code}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found \u2014 infer decisions from configs, README, and code\n", + "stdout_bytes": 62, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 11, + "command": "out=$(ls docs/adr/ docs/decisions/ adr/ 2>/dev/null | head -5); echo \"${out:-none found \u2014 infer decisions from configs, README, and code}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "docs/adr/:\n001-read-mostly-system-of-record.md\n002-append-only-signals.md\n003-static-poller-array.md\n004-public-shell-private-config.md\n", + "stdout_bytes": 136, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 11, + "command": "out=$(ls docs/adr/ docs/decisions/ adr/ 2>/dev/null | head -5); echo \"${out:-none found \u2014 infer decisions from configs, README, and code}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "docs/adr/:\n001-read-mostly-system-of-record.md\n002-append-only-signals.md\n003-static-poller-array.md\n004-public-shell-private-config.md\n", + "stdout_bytes": 136, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 2 \\( -iname \"roadmap*\" -o -path \"./docs/product/*\" -o -path \"./docs/updates/*\" \\) 2>/dev/null | head -5); echo \"${out:-none found}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "./docs/ROADMAP.md\n", + "stdout_bytes": 18, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 2 \\( -iname \"roadmap*\" -o -path \"./docs/product/*\" -o -path \"./docs/updates/*\" \\) 2>/dev/null | head -5); echo \"${out:-none found}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "./docs/ROADMAP.md\n", + "stdout_bytes": 18, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 2 \\( -iname \"roadmap*\" -o -path \"./docs/product/*\" -o -path \"./docs/updates/*\" \\) 2>/dev/null | head -5); echo \"${out:-none found}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 2 \\( -iname \"roadmap*\" -o -path \"./docs/product/*\" -o -path \"./docs/updates/*\" \\) 2>/dev/null | head -5); echo \"${out:-none found}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 2 \\( -iname \"roadmap*\" -o -path \"./docs/product/*\" -o -path \"./docs/updates/*\" \\) 2>/dev/null | head -5); echo \"${out:-none found}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 2 \\( -iname \"roadmap*\" -o -path \"./docs/product/*\" -o -path \"./docs/updates/*\" \\) 2>/dev/null | head -5); echo \"${out:-none found}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 13, + "command": "ls .github/workflows/ 2>/dev/null || echo \"none\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "validate.yml\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 13, + "command": "ls .github/workflows/ 2>/dev/null || echo \"none\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "validate.yml\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 13, + "command": "ls .github/workflows/ 2>/dev/null || echo \"none\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 13, + "command": "ls .github/workflows/ 2>/dev/null || echo \"none\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 13, + "command": "ls .github/workflows/ 2>/dev/null || echo \"none\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "ci.yml\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 13, + "command": "ls .github/workflows/ 2>/dev/null || echo \"none\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "ci.yml\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 14, + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none found}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 14, + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none found}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 14, + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none found}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 14, + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none found}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 14, + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none found}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "package.json\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 14, + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none found}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "package.json\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 15, + "command": "b=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|.*/||'); [ -n \"$b\" ] || b=$(git branch --show-current 2>/dev/null); echo \"${b:-unknown}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "main\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 15, + "command": "b=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|.*/||'); [ -n \"$b\" ] || b=$(git branch --show-current 2>/dev/null); echo \"${b:-unknown}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "main\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 15, + "command": "b=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|.*/||'); [ -n \"$b\" ] || b=$(git branch --show-current 2>/dev/null); echo \"${b:-unknown}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "unknown\n", + "stdout_bytes": 8, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 15, + "command": "b=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|.*/||'); [ -n \"$b\" ] || b=$(git branch --show-current 2>/dev/null); echo \"${b:-unknown}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "unknown\n", + "stdout_bytes": 8, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 15, + "command": "b=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|.*/||'); [ -n \"$b\" ] || b=$(git branch --show-current 2>/dev/null); echo \"${b:-unknown}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "main\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 15, + "command": "b=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|.*/||'); [ -n \"$b\" ] || b=$(git branch --show-current 2>/dev/null); echo \"${b:-unknown}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "main\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 16, + "command": "ls Dockerfile docker-compose.yml fly.toml render.yaml wrangler.toml vercel.json 2>/dev/null || echo \"none\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 16, + "command": "ls Dockerfile docker-compose.yml fly.toml render.yaml wrangler.toml vercel.json 2>/dev/null || echo \"none\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 16, + "command": "ls Dockerfile docker-compose.yml fly.toml render.yaml wrangler.toml vercel.json 2>/dev/null || echo \"none\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 16, + "command": "ls Dockerfile docker-compose.yml fly.toml render.yaml wrangler.toml vercel.json 2>/dev/null || echo \"none\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 16, + "command": "ls Dockerfile docker-compose.yml fly.toml render.yaml wrangler.toml vercel.json 2>/dev/null || echo \"none\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/arch-audit/SKILL.md", + "line": 16, + "command": "ls Dockerfile docker-compose.yml fly.toml render.yaml wrangler.toml vercel.json 2>/dev/null || echo \"none\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/audit-fix/SKILL.md", + "line": 11, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo \u2014 fixes cannot be cleanly reverted; flag this to the user before editing\"; fi", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "clean\n", + "stdout_bytes": 6, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/audit-fix/SKILL.md", + "line": 11, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo \u2014 fixes cannot be cleanly reverted; flag this to the user before editing\"; fi", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "clean\n", + "stdout_bytes": 6, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/audit-fix/SKILL.md", + "line": 11, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo \u2014 fixes cannot be cleanly reverted; flag this to the user before editing\"; fi", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "not a git repo \u2014 fixes cannot be cleanly reverted; flag this to the user before editing\n", + "stdout_bytes": 90, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/audit-fix/SKILL.md", + "line": 11, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo \u2014 fixes cannot be cleanly reverted; flag this to the user before editing\"; fi", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "not a git repo \u2014 fixes cannot be cleanly reverted; flag this to the user before editing\n", + "stdout_bytes": 90, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/audit-fix/SKILL.md", + "line": 11, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo \u2014 fixes cannot be cleanly reverted; flag this to the user before editing\"; fi", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "clean\n", + "stdout_bytes": 6, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/audit-fix/SKILL.md", + "line": 11, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo \u2014 fixes cannot be cleanly reverted; flag this to the user before editing\"; fi", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "clean\n", + "stdout_bytes": 6, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/audit-fix/SKILL.md", + "line": 12, + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached HEAD or not a git repo}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "main\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/audit-fix/SKILL.md", + "line": 12, + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached HEAD or not a git repo}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "main\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/audit-fix/SKILL.md", + "line": 12, + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached HEAD or not a git repo}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "detached HEAD or not a git repo\n", + "stdout_bytes": 32, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/audit-fix/SKILL.md", + "line": 12, + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached HEAD or not a git repo}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "detached HEAD or not a git repo\n", + "stdout_bytes": 32, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/audit-fix/SKILL.md", + "line": 12, + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached HEAD or not a git repo}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "main\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/audit-fix/SKILL.md", + "line": 12, + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached HEAD or not a git repo}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "main\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/deps-audit/SKILL.md", + "line": 11, + "command": "out=$(find . -maxdepth 3 \\( -name package.json -o -name pyproject.toml -o -name requirements.txt -o -name go.mod -o -name Cargo.toml -o -name Gemfile -o -name composer.json \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none found \u2014 no dependency surface; say so and stop}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found \u2014 no dependency surface; say so and stop\n", + "stdout_bytes": 54, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/deps-audit/SKILL.md", + "line": 11, + "command": "out=$(find . -maxdepth 3 \\( -name package.json -o -name pyproject.toml -o -name requirements.txt -o -name go.mod -o -name Cargo.toml -o -name Gemfile -o -name composer.json \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none found \u2014 no dependency surface; say so and stop}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found \u2014 no dependency surface; say so and stop\n", + "stdout_bytes": 54, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/deps-audit/SKILL.md", + "line": 11, + "command": "out=$(find . -maxdepth 3 \\( -name package.json -o -name pyproject.toml -o -name requirements.txt -o -name go.mod -o -name Cargo.toml -o -name Gemfile -o -name composer.json \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none found \u2014 no dependency surface; say so and stop}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found \u2014 no dependency surface; say so and stop\n", + "stdout_bytes": 54, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/deps-audit/SKILL.md", + "line": 11, + "command": "out=$(find . -maxdepth 3 \\( -name package.json -o -name pyproject.toml -o -name requirements.txt -o -name go.mod -o -name Cargo.toml -o -name Gemfile -o -name composer.json \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none found \u2014 no dependency surface; say so and stop}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found \u2014 no dependency surface; say so and stop\n", + "stdout_bytes": 54, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/deps-audit/SKILL.md", + "line": 11, + "command": "out=$(find . -maxdepth 3 \\( -name package.json -o -name pyproject.toml -o -name requirements.txt -o -name go.mod -o -name Cargo.toml -o -name Gemfile -o -name composer.json \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none found \u2014 no dependency surface; say so and stop}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "./package.json\n", + "stdout_bytes": 15, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/deps-audit/SKILL.md", + "line": 11, + "command": "out=$(find . -maxdepth 3 \\( -name package.json -o -name pyproject.toml -o -name requirements.txt -o -name go.mod -o -name Cargo.toml -o -name Gemfile -o -name composer.json \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none found \u2014 no dependency surface; say so and stop}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "./package.json\n", + "stdout_bytes": 15, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/deps-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 3 \\( -name package-lock.json -o -name pnpm-lock.yaml -o -name yarn.lock -o -name bun.lockb -o -name poetry.lock -o -name uv.lock -o -name go.sum -o -name Cargo.lock -o -name Gemfile.lock \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none \u2014 every manifest is unpinned (itself a finding)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none \u2014 every manifest is unpinned (itself a finding)\n", + "stdout_bytes": 55, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/deps-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 3 \\( -name package-lock.json -o -name pnpm-lock.yaml -o -name yarn.lock -o -name bun.lockb -o -name poetry.lock -o -name uv.lock -o -name go.sum -o -name Cargo.lock -o -name Gemfile.lock \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none \u2014 every manifest is unpinned (itself a finding)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none \u2014 every manifest is unpinned (itself a finding)\n", + "stdout_bytes": 55, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/deps-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 3 \\( -name package-lock.json -o -name pnpm-lock.yaml -o -name yarn.lock -o -name bun.lockb -o -name poetry.lock -o -name uv.lock -o -name go.sum -o -name Cargo.lock -o -name Gemfile.lock \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none \u2014 every manifest is unpinned (itself a finding)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none \u2014 every manifest is unpinned (itself a finding)\n", + "stdout_bytes": 55, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/deps-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 3 \\( -name package-lock.json -o -name pnpm-lock.yaml -o -name yarn.lock -o -name bun.lockb -o -name poetry.lock -o -name uv.lock -o -name go.sum -o -name Cargo.lock -o -name Gemfile.lock \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none \u2014 every manifest is unpinned (itself a finding)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none \u2014 every manifest is unpinned (itself a finding)\n", + "stdout_bytes": 55, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/deps-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 3 \\( -name package-lock.json -o -name pnpm-lock.yaml -o -name yarn.lock -o -name bun.lockb -o -name poetry.lock -o -name uv.lock -o -name go.sum -o -name Cargo.lock -o -name Gemfile.lock \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none \u2014 every manifest is unpinned (itself a finding)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "./package-lock.json\n", + "stdout_bytes": 20, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/deps-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 3 \\( -name package-lock.json -o -name pnpm-lock.yaml -o -name yarn.lock -o -name bun.lockb -o -name poetry.lock -o -name uv.lock -o -name go.sum -o -name Cargo.lock -o -name Gemfile.lock \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none \u2014 every manifest is unpinned (itself a finding)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "./package-lock.json\n", + "stdout_bytes": 20, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/deps-audit/SKILL.md", + "line": 13, + "command": "if curl -s -m 4 -o /dev/null -w \"%{http_code}\" https://registry.npmjs.org/ 2>/dev/null | grep -q \"200\"; then echo \"available \u2014 registry freshness + OSV advisories in scope\"; else echo \"unavailable \u2014 freshness/advisories become unverified coverage, not findings\"; fi", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "unavailable \u2014 freshness/advisories become unverified coverage, not findings\n", + "stdout_bytes": 78, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/deps-audit/SKILL.md", + "line": 13, + "command": "if curl -s -m 4 -o /dev/null -w \"%{http_code}\" https://registry.npmjs.org/ 2>/dev/null | grep -q \"200\"; then echo \"available \u2014 registry freshness + OSV advisories in scope\"; else echo \"unavailable \u2014 freshness/advisories become unverified coverage, not findings\"; fi", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "unavailable \u2014 freshness/advisories become unverified coverage, not findings\n", + "stdout_bytes": 78, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/deps-audit/SKILL.md", + "line": 13, + "command": "if curl -s -m 4 -o /dev/null -w \"%{http_code}\" https://registry.npmjs.org/ 2>/dev/null | grep -q \"200\"; then echo \"available \u2014 registry freshness + OSV advisories in scope\"; else echo \"unavailable \u2014 freshness/advisories become unverified coverage, not findings\"; fi", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "unavailable \u2014 freshness/advisories become unverified coverage, not findings\n", + "stdout_bytes": 78, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/deps-audit/SKILL.md", + "line": 13, + "command": "if curl -s -m 4 -o /dev/null -w \"%{http_code}\" https://registry.npmjs.org/ 2>/dev/null | grep -q \"200\"; then echo \"available \u2014 registry freshness + OSV advisories in scope\"; else echo \"unavailable \u2014 freshness/advisories become unverified coverage, not findings\"; fi", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "unavailable \u2014 freshness/advisories become unverified coverage, not findings\n", + "stdout_bytes": 78, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/deps-audit/SKILL.md", + "line": 13, + "command": "if curl -s -m 4 -o /dev/null -w \"%{http_code}\" https://registry.npmjs.org/ 2>/dev/null | grep -q \"200\"; then echo \"available \u2014 registry freshness + OSV advisories in scope\"; else echo \"unavailable \u2014 freshness/advisories become unverified coverage, not findings\"; fi", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "unavailable \u2014 freshness/advisories become unverified coverage, not findings\n", + "stdout_bytes": 78, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/deps-audit/SKILL.md", + "line": 13, + "command": "if curl -s -m 4 -o /dev/null -w \"%{http_code}\" https://registry.npmjs.org/ 2>/dev/null | grep -q \"200\"; then echo \"available \u2014 registry freshness + OSV advisories in scope\"; else echo \"unavailable \u2014 freshness/advisories become unverified coverage, not findings\"; fi", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "unavailable \u2014 freshness/advisories become unverified coverage, not findings\n", + "stdout_bytes": 78, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 11, + "command": "out=$(grep -rl -- '--[a-zA-Z][a-zA-Z0-9-]*:' --include='*.css' . 2>/dev/null | grep -v node_modules | head -8); echo \"${out:-none found \u2014 look for SCSS/JS token sources or hardcoded styling (itself a finding)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "./plugins/pezza-design-system/skills/pezza-design/motion/sting.html\n./plugins/pezza-design-system/skills/pezza-design/motion/motion.css\n./plugins/pezza-design-system/skills/pezza-design/readme.md\n./plugins/pezza-design-system/skills/pezza-design/tokens/typography.css\n./plugins/pezza-design-system/skills/pezza-design/tokens/spacing.css\n./plugins/pezza-design-system/skills/pezza-design/tokens/colors.css\n./plugins/pezza-design-system/skills/pezza-design/tokens/effects.css\n./.claude/settings.local.json\n", + "stdout_bytes": 504, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 11, + "command": "out=$(grep -rl -- '--[a-zA-Z][a-zA-Z0-9-]*:' --include='*.css' . 2>/dev/null | grep -v node_modules | head -8); echo \"${out:-none found \u2014 look for SCSS/JS token sources or hardcoded styling (itself a finding)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "./plugins/pezza-design-system/skills/pezza-design/motion/sting.html\n./plugins/pezza-design-system/skills/pezza-design/motion/motion.css\n./plugins/pezza-design-system/skills/pezza-design/readme.md\n./plugins/pezza-design-system/skills/pezza-design/tokens/typography.css\n./plugins/pezza-design-system/skills/pezza-design/tokens/spacing.css\n./plugins/pezza-design-system/skills/pezza-design/tokens/colors.css\n./plugins/pezza-design-system/skills/pezza-design/tokens/effects.css\n./.claude/settings.local.json\n", + "stdout_bytes": 504, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 11, + "command": "out=$(grep -rl -- '--[a-zA-Z][a-zA-Z0-9-]*:' --include='*.css' . 2>/dev/null | grep -v node_modules | head -8); echo \"${out:-none found \u2014 look for SCSS/JS token sources or hardcoded styling (itself a finding)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found \u2014 look for SCSS/JS token sources or hardcoded styling (itself a finding)\n", + "stdout_bytes": 86, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 11, + "command": "out=$(grep -rl -- '--[a-zA-Z][a-zA-Z0-9-]*:' --include='*.css' . 2>/dev/null | grep -v node_modules | head -8); echo \"${out:-none found \u2014 look for SCSS/JS token sources or hardcoded styling (itself a finding)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found \u2014 look for SCSS/JS token sources or hardcoded styling (itself a finding)\n", + "stdout_bytes": 86, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 11, + "command": "out=$(grep -rl -- '--[a-zA-Z][a-zA-Z0-9-]*:' --include='*.css' . 2>/dev/null | grep -v node_modules | head -8); echo \"${out:-none found \u2014 look for SCSS/JS token sources or hardcoded styling (itself a finding)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "./public/tokens.css\n", + "stdout_bytes": 20, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 11, + "command": "out=$(grep -rl -- '--[a-zA-Z][a-zA-Z0-9-]*:' --include='*.css' . 2>/dev/null | grep -v node_modules | head -8); echo \"${out:-none found \u2014 look for SCSS/JS token sources or hardcoded styling (itself a finding)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "./public/tokens.css\n", + "stdout_bytes": 20, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 3 \\( -name \"base.json\" -o -name \"tokens.json\" -o -name \"design-tokens.json\" -o -name \"theme.json\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -3); echo \"${out:-none}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 3 \\( -name \"base.json\" -o -name \"tokens.json\" -o -name \"design-tokens.json\" -o -name \"theme.json\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -3); echo \"${out:-none}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 3 \\( -name \"base.json\" -o -name \"tokens.json\" -o -name \"design-tokens.json\" -o -name \"theme.json\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -3); echo \"${out:-none}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 3 \\( -name \"base.json\" -o -name \"tokens.json\" -o -name \"design-tokens.json\" -o -name \"theme.json\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -3); echo \"${out:-none}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 3 \\( -name \"base.json\" -o -name \"tokens.json\" -o -name \"design-tokens.json\" -o -name \"theme.json\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -3); echo \"${out:-none}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 3 \\( -name \"base.json\" -o -name \"tokens.json\" -o -name \"design-tokens.json\" -o -name \"theme.json\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -3); echo \"${out:-none}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 13, + "command": "out=$(ls SKILL.md readme.md README.md STYLE.md BRAND.md 2>/dev/null; find docs -maxdepth 2 -iname \"*brand*\" -o -iname \"*design*\" 2>/dev/null | head -3); echo \"${out:-none \u2014 infer the rules from the tokens themselves}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "README.md\nreadme.md\n", + "stdout_bytes": 20, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 13, + "command": "out=$(ls SKILL.md readme.md README.md STYLE.md BRAND.md 2>/dev/null; find docs -maxdepth 2 -iname \"*brand*\" -o -iname \"*design*\" 2>/dev/null | head -3); echo \"${out:-none \u2014 infer the rules from the tokens themselves}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "README.md\nreadme.md\n", + "stdout_bytes": 20, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 13, + "command": "out=$(ls SKILL.md readme.md README.md STYLE.md BRAND.md 2>/dev/null; find docs -maxdepth 2 -iname \"*brand*\" -o -iname \"*design*\" 2>/dev/null | head -3); echo \"${out:-none \u2014 infer the rules from the tokens themselves}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none \u2014 infer the rules from the tokens themselves\n", + "stdout_bytes": 52, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 13, + "command": "out=$(ls SKILL.md readme.md README.md STYLE.md BRAND.md 2>/dev/null; find docs -maxdepth 2 -iname \"*brand*\" -o -iname \"*design*\" 2>/dev/null | head -3); echo \"${out:-none \u2014 infer the rules from the tokens themselves}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none \u2014 infer the rules from the tokens themselves\n", + "stdout_bytes": 52, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 13, + "command": "out=$(ls SKILL.md readme.md README.md STYLE.md BRAND.md 2>/dev/null; find docs -maxdepth 2 -iname \"*brand*\" -o -iname \"*design*\" 2>/dev/null | head -3); echo \"${out:-none \u2014 infer the rules from the tokens themselves}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "README.md\nreadme.md\n", + "stdout_bytes": 20, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 13, + "command": "out=$(ls SKILL.md readme.md README.md STYLE.md BRAND.md 2>/dev/null; find docs -maxdepth 2 -iname \"*brand*\" -o -iname \"*design*\" 2>/dev/null | head -3); echo \"${out:-none \u2014 infer the rules from the tokens themselves}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "README.md\nreadme.md\n", + "stdout_bytes": 20, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 14, + "command": "out=$(grep -rlE 'data-theme|prefers-color-scheme|\\.dark\\b|\\.light\\b|\\.on-dark\\b' --include='*.css' . 2>/dev/null | grep -v node_modules | head -5); echo \"${out:-single theme}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "./plugins/pezza-design-system/skills/pezza-design/prose.css\n./plugins/pezza-design-system/skills/pezza-design/tokens/colors.css\n", + "stdout_bytes": 128, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 14, + "command": "out=$(grep -rlE 'data-theme|prefers-color-scheme|\\.dark\\b|\\.light\\b|\\.on-dark\\b' --include='*.css' . 2>/dev/null | grep -v node_modules | head -5); echo \"${out:-single theme}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "./plugins/pezza-design-system/skills/pezza-design/prose.css\n./plugins/pezza-design-system/skills/pezza-design/tokens/colors.css\n", + "stdout_bytes": 128, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 14, + "command": "out=$(grep -rlE 'data-theme|prefers-color-scheme|\\.dark\\b|\\.light\\b|\\.on-dark\\b' --include='*.css' . 2>/dev/null | grep -v node_modules | head -5); echo \"${out:-single theme}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "single theme\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 14, + "command": "out=$(grep -rlE 'data-theme|prefers-color-scheme|\\.dark\\b|\\.light\\b|\\.on-dark\\b' --include='*.css' . 2>/dev/null | grep -v node_modules | head -5); echo \"${out:-single theme}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "single theme\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 14, + "command": "out=$(grep -rlE 'data-theme|prefers-color-scheme|\\.dark\\b|\\.light\\b|\\.on-dark\\b' --include='*.css' . 2>/dev/null | grep -v node_modules | head -5); echo \"${out:-single theme}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "./public/tokens.css\n", + "stdout_bytes": 20, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 14, + "command": "out=$(grep -rlE 'data-theme|prefers-color-scheme|\\.dark\\b|\\.light\\b|\\.on-dark\\b' --include='*.css' . 2>/dev/null | grep -v node_modules | head -5); echo \"${out:-single theme}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "./public/tokens.css\n", + "stdout_bytes": 20, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 15, + "command": "out=$(find . \\( -name \"*.card.html\" -o -name \"*.stories.*\" -o -iname \"*specimen*\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -8); echo \"${out:-none found}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "./plugins/pezza-design-system/skills/pezza-design/components/music/music.card.html\n./plugins/pezza-design-system/skills/pezza-design/components/forms/forms.card.html\n./plugins/pezza-design-system/skills/pezza-design/components/core/buttons.card.html\n./plugins/pezza-design-system/skills/pezza-design/components/display/MetaLabel.card.html\n./plugins/pezza-design-system/skills/pezza-design/components/display/PhotoHero.card.html\n./plugins/pezza-design-system/skills/pezza-design/components/display/display.card.html\n./plugins/pezza-design-system/skills/pezza-design/guidelines/type-body.card.html\n./plugins/pezza-design-system/skills/pezza-design/guidelines/color-semantic.card.html\n", + "stdout_bytes": 682, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 15, + "command": "out=$(find . \\( -name \"*.card.html\" -o -name \"*.stories.*\" -o -iname \"*specimen*\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -8); echo \"${out:-none found}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "./plugins/pezza-design-system/skills/pezza-design/components/music/music.card.html\n./plugins/pezza-design-system/skills/pezza-design/components/forms/forms.card.html\n./plugins/pezza-design-system/skills/pezza-design/components/core/buttons.card.html\n./plugins/pezza-design-system/skills/pezza-design/components/display/MetaLabel.card.html\n./plugins/pezza-design-system/skills/pezza-design/components/display/PhotoHero.card.html\n./plugins/pezza-design-system/skills/pezza-design/components/display/display.card.html\n./plugins/pezza-design-system/skills/pezza-design/guidelines/type-body.card.html\n./plugins/pezza-design-system/skills/pezza-design/guidelines/color-semantic.card.html\n", + "stdout_bytes": 682, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 15, + "command": "out=$(find . \\( -name \"*.card.html\" -o -name \"*.stories.*\" -o -iname \"*specimen*\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -8); echo \"${out:-none found}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 15, + "command": "out=$(find . \\( -name \"*.card.html\" -o -name \"*.stories.*\" -o -iname \"*specimen*\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -8); echo \"${out:-none found}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 15, + "command": "out=$(find . \\( -name \"*.card.html\" -o -name \"*.stories.*\" -o -iname \"*specimen*\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -8); echo \"${out:-none found}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/design-audit/SKILL.md", + "line": 15, + "command": "out=$(find . \\( -name \"*.card.html\" -o -name \"*.stories.*\" -o -iname \"*specimen*\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -8); echo \"${out:-none found}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 11, + "command": "out=$(find .github/workflows -maxdepth 1 \\( -name \"*.yml\" -o -name \"*.yaml\" \\) 2>/dev/null | head -12); echo \"${out:-none found \u2014 no CI surface; if deploy configs below are also absent, say so and stop}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": ".github/workflows/validate.yml\n", + "stdout_bytes": 31, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 11, + "command": "out=$(find .github/workflows -maxdepth 1 \\( -name \"*.yml\" -o -name \"*.yaml\" \\) 2>/dev/null | head -12); echo \"${out:-none found \u2014 no CI surface; if deploy configs below are also absent, say so and stop}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": ".github/workflows/validate.yml\n", + "stdout_bytes": 31, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 11, + "command": "out=$(find .github/workflows -maxdepth 1 \\( -name \"*.yml\" -o -name \"*.yaml\" \\) 2>/dev/null | head -12); echo \"${out:-none found \u2014 no CI surface; if deploy configs below are also absent, say so and stop}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found \u2014 no CI surface; if deploy configs below are also absent, say so and stop\n", + "stdout_bytes": 87, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 11, + "command": "out=$(find .github/workflows -maxdepth 1 \\( -name \"*.yml\" -o -name \"*.yaml\" \\) 2>/dev/null | head -12); echo \"${out:-none found \u2014 no CI surface; if deploy configs below are also absent, say so and stop}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found \u2014 no CI surface; if deploy configs below are also absent, say so and stop\n", + "stdout_bytes": 87, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 11, + "command": "out=$(find .github/workflows -maxdepth 1 \\( -name \"*.yml\" -o -name \"*.yaml\" \\) 2>/dev/null | head -12); echo \"${out:-none found \u2014 no CI surface; if deploy configs below are also absent, say so and stop}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": ".github/workflows/ci.yml\n", + "stdout_bytes": 25, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 11, + "command": "out=$(find .github/workflows -maxdepth 1 \\( -name \"*.yml\" -o -name \"*.yaml\" \\) 2>/dev/null | head -12); echo \"${out:-none found \u2014 no CI surface; if deploy configs below are also absent, say so and stop}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": ".github/workflows/ci.yml\n", + "stdout_bytes": 25, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 2 \\( -name \"Dockerfile*\" -o -name \"docker-compose*.yml\" -o -name \"wrangler.toml\" -o -name \"wrangler.jsonc\" -o -name \"fly.toml\" -o -name \"netlify.toml\" -o -name \"vercel.json\" -o -name \"Procfile\" \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none \u2014 CI-only surface}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none \u2014 CI-only surface\n", + "stdout_bytes": 25, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 2 \\( -name \"Dockerfile*\" -o -name \"docker-compose*.yml\" -o -name \"wrangler.toml\" -o -name \"wrangler.jsonc\" -o -name \"fly.toml\" -o -name \"netlify.toml\" -o -name \"vercel.json\" -o -name \"Procfile\" \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none \u2014 CI-only surface}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none \u2014 CI-only surface\n", + "stdout_bytes": 25, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 2 \\( -name \"Dockerfile*\" -o -name \"docker-compose*.yml\" -o -name \"wrangler.toml\" -o -name \"wrangler.jsonc\" -o -name \"fly.toml\" -o -name \"netlify.toml\" -o -name \"vercel.json\" -o -name \"Procfile\" \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none \u2014 CI-only surface}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none \u2014 CI-only surface\n", + "stdout_bytes": 25, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 2 \\( -name \"Dockerfile*\" -o -name \"docker-compose*.yml\" -o -name \"wrangler.toml\" -o -name \"wrangler.jsonc\" -o -name \"fly.toml\" -o -name \"netlify.toml\" -o -name \"vercel.json\" -o -name \"Procfile\" \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none \u2014 CI-only surface}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none \u2014 CI-only surface\n", + "stdout_bytes": 25, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 2 \\( -name \"Dockerfile*\" -o -name \"docker-compose*.yml\" -o -name \"wrangler.toml\" -o -name \"wrangler.jsonc\" -o -name \"fly.toml\" -o -name \"netlify.toml\" -o -name \"vercel.json\" -o -name \"Procfile\" \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none \u2014 CI-only surface}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "./wrangler.jsonc\n", + "stdout_bytes": 17, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -maxdepth 2 \\( -name \"Dockerfile*\" -o -name \"docker-compose*.yml\" -o -name \"wrangler.toml\" -o -name \"wrangler.jsonc\" -o -name \"fly.toml\" -o -name \"netlify.toml\" -o -name \"vercel.json\" -o -name \"Procfile\" \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none \u2014 CI-only surface}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "./wrangler.jsonc\n", + "stdout_bytes": 17, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 13, + "command": "out=$(ls .github/dependabot.yml .github/dependabot.yaml renovate.json .github/renovate.json 2>/dev/null | head -2); echo \"${out:-none \u2014 no dependency-update automation (finding candidate, severity by repo activity)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": ".github/dependabot.yml\n", + "stdout_bytes": 23, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 13, + "command": "out=$(ls .github/dependabot.yml .github/dependabot.yaml renovate.json .github/renovate.json 2>/dev/null | head -2); echo \"${out:-none \u2014 no dependency-update automation (finding candidate, severity by repo activity)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": ".github/dependabot.yml\n", + "stdout_bytes": 23, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 13, + "command": "out=$(ls .github/dependabot.yml .github/dependabot.yaml renovate.json .github/renovate.json 2>/dev/null | head -2); echo \"${out:-none \u2014 no dependency-update automation (finding candidate, severity by repo activity)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none \u2014 no dependency-update automation (finding candidate, severity by repo activity)\n", + "stdout_bytes": 88, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 13, + "command": "out=$(ls .github/dependabot.yml .github/dependabot.yaml renovate.json .github/renovate.json 2>/dev/null | head -2); echo \"${out:-none \u2014 no dependency-update automation (finding candidate, severity by repo activity)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none \u2014 no dependency-update automation (finding candidate, severity by repo activity)\n", + "stdout_bytes": 88, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 13, + "command": "out=$(ls .github/dependabot.yml .github/dependabot.yaml renovate.json .github/renovate.json 2>/dev/null | head -2); echo \"${out:-none \u2014 no dependency-update automation (finding candidate, severity by repo activity)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none \u2014 no dependency-update automation (finding candidate, severity by repo activity)\n", + "stdout_bytes": 88, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 13, + "command": "out=$(ls .github/dependabot.yml .github/dependabot.yaml renovate.json .github/renovate.json 2>/dev/null | head -2); echo \"${out:-none \u2014 no dependency-update automation (finding candidate, severity by repo activity)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none \u2014 no dependency-update automation (finding candidate, severity by repo activity)\n", + "stdout_bytes": 88, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 14, + "command": "out=$({ [ -d .husky ] && echo \".husky/ present\"; ls Taskfile.yml Makefile 2>/dev/null; grep -oE \"\\\"(quality|ci|check)[^\\\"]*\\\"[[:space:]]*:\" package.json 2>/dev/null | head -4; } | head -6); echo \"${out:-none found \u2014 no local gate surface to compare CI against}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found \u2014 no local gate surface to compare CI against\n", + "stdout_bytes": 59, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 14, + "command": "out=$({ [ -d .husky ] && echo \".husky/ present\"; ls Taskfile.yml Makefile 2>/dev/null; grep -oE \"\\\"(quality|ci|check)[^\\\"]*\\\"[[:space:]]*:\" package.json 2>/dev/null | head -4; } | head -6); echo \"${out:-none found \u2014 no local gate surface to compare CI against}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found \u2014 no local gate surface to compare CI against\n", + "stdout_bytes": 59, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 14, + "command": "out=$({ [ -d .husky ] && echo \".husky/ present\"; ls Taskfile.yml Makefile 2>/dev/null; grep -oE \"\\\"(quality|ci|check)[^\\\"]*\\\"[[:space:]]*:\" package.json 2>/dev/null | head -4; } | head -6); echo \"${out:-none found \u2014 no local gate surface to compare CI against}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found \u2014 no local gate surface to compare CI against\n", + "stdout_bytes": 59, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 14, + "command": "out=$({ [ -d .husky ] && echo \".husky/ present\"; ls Taskfile.yml Makefile 2>/dev/null; grep -oE \"\\\"(quality|ci|check)[^\\\"]*\\\"[[:space:]]*:\" package.json 2>/dev/null | head -4; } | head -6); echo \"${out:-none found \u2014 no local gate surface to compare CI against}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found \u2014 no local gate surface to compare CI against\n", + "stdout_bytes": 59, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 14, + "command": "out=$({ [ -d .husky ] && echo \".husky/ present\"; ls Taskfile.yml Makefile 2>/dev/null; grep -oE \"\\\"(quality|ci|check)[^\\\"]*\\\"[[:space:]]*:\" package.json 2>/dev/null | head -4; } | head -6); echo \"${out:-none found \u2014 no local gate surface to compare CI against}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found \u2014 no local gate surface to compare CI against\n", + "stdout_bytes": 59, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/devops-audit/SKILL.md", + "line": 14, + "command": "out=$({ [ -d .husky ] && echo \".husky/ present\"; ls Taskfile.yml Makefile 2>/dev/null; grep -oE \"\\\"(quality|ci|check)[^\\\"]*\\\"[[:space:]]*:\" package.json 2>/dev/null | head -4; } | head -6); echo \"${out:-none found \u2014 no local gate surface to compare CI against}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found \u2014 no local gate surface to compare CI against\n", + "stdout_bytes": 59, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 11, + "command": "out=$(find . -maxdepth 2 \\( -name \"budgets*.json\" -o -name \"lighthouserc*\" -o -name \".size-limit*\" -o -name \"bundlesize*\" -o -name \"*.budget.*\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -6; grep -l '\"size-limit\"\\|\"bundlesize\"' package.json 2>/dev/null); echo \"${out:-none found \u2014 posture is undeclared; the audit reports observed sizes without a stated bar}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found \u2014 posture is undeclared; the audit reports observed sizes without a stated bar\n", + "stdout_bytes": 92, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 11, + "command": "out=$(find . -maxdepth 2 \\( -name \"budgets*.json\" -o -name \"lighthouserc*\" -o -name \".size-limit*\" -o -name \"bundlesize*\" -o -name \"*.budget.*\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -6; grep -l '\"size-limit\"\\|\"bundlesize\"' package.json 2>/dev/null); echo \"${out:-none found \u2014 posture is undeclared; the audit reports observed sizes without a stated bar}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found \u2014 posture is undeclared; the audit reports observed sizes without a stated bar\n", + "stdout_bytes": 92, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 11, + "command": "out=$(find . -maxdepth 2 \\( -name \"budgets*.json\" -o -name \"lighthouserc*\" -o -name \".size-limit*\" -o -name \"bundlesize*\" -o -name \"*.budget.*\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -6; grep -l '\"size-limit\"\\|\"bundlesize\"' package.json 2>/dev/null); echo \"${out:-none found \u2014 posture is undeclared; the audit reports observed sizes without a stated bar}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found \u2014 posture is undeclared; the audit reports observed sizes without a stated bar\n", + "stdout_bytes": 92, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 11, + "command": "out=$(find . -maxdepth 2 \\( -name \"budgets*.json\" -o -name \"lighthouserc*\" -o -name \".size-limit*\" -o -name \"bundlesize*\" -o -name \"*.budget.*\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -6; grep -l '\"size-limit\"\\|\"bundlesize\"' package.json 2>/dev/null); echo \"${out:-none found \u2014 posture is undeclared; the audit reports observed sizes without a stated bar}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found \u2014 posture is undeclared; the audit reports observed sizes without a stated bar\n", + "stdout_bytes": 92, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 11, + "command": "out=$(find . -maxdepth 2 \\( -name \"budgets*.json\" -o -name \"lighthouserc*\" -o -name \".size-limit*\" -o -name \"bundlesize*\" -o -name \"*.budget.*\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -6; grep -l '\"size-limit\"\\|\"bundlesize\"' package.json 2>/dev/null); echo \"${out:-none found \u2014 posture is undeclared; the audit reports observed sizes without a stated bar}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found \u2014 posture is undeclared; the audit reports observed sizes without a stated bar\n", + "stdout_bytes": 92, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 11, + "command": "out=$(find . -maxdepth 2 \\( -name \"budgets*.json\" -o -name \"lighthouserc*\" -o -name \".size-limit*\" -o -name \"bundlesize*\" -o -name \"*.budget.*\" \\) -not -path \"*/node_modules/*\" 2>/dev/null | head -6; grep -l '\"size-limit\"\\|\"bundlesize\"' package.json 2>/dev/null); echo \"${out:-none found \u2014 posture is undeclared; the audit reports observed sizes without a stated bar}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found \u2014 posture is undeclared; the audit reports observed sizes without a stated bar\n", + "stdout_bytes": 92, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 12, + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if any(w in k.lower() or w in str(v).lower() for w in ('perf','budget','lighthouse','lhci','size','bundle'))))\" 2>/dev/null); echo \"${out:-none}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 12, + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if any(w in k.lower() or w in str(v).lower() for w in ('perf','budget','lighthouse','lhci','size','bundle'))))\" 2>/dev/null); echo \"${out:-none}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 12, + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if any(w in k.lower() or w in str(v).lower() for w in ('perf','budget','lighthouse','lhci','size','bundle'))))\" 2>/dev/null); echo \"${out:-none}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 12, + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if any(w in k.lower() or w in str(v).lower() for w in ('perf','budget','lighthouse','lhci','size','bundle'))))\" 2>/dev/null); echo \"${out:-none}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 12, + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if any(w in k.lower() or w in str(v).lower() for w in ('perf','budget','lighthouse','lhci','size','bundle'))))\" 2>/dev/null); echo \"${out:-none}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 12, + "command": "out=$(python3 -c \"import json; s=json.load(open('package.json')).get('scripts',{}); print('\\n'.join(f'{k}: {v}' for k,v in s.items() if any(w in k.lower() or w in str(v).lower() for w in ('perf','budget','lighthouse','lhci','size','bundle'))))\" 2>/dev/null); echo \"${out:-none}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 13, + "command": "out=$(ls -d dist build .next out public 2>/dev/null | head -3); echo \"${out:-no build output on disk \u2014 size checks need a build or are skipped (say which)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no build output on disk \u2014 size checks need a build or are skipped (say which)\n", + "stdout_bytes": 80, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 13, + "command": "out=$(ls -d dist build .next out public 2>/dev/null | head -3); echo \"${out:-no build output on disk \u2014 size checks need a build or are skipped (say which)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no build output on disk \u2014 size checks need a build or are skipped (say which)\n", + "stdout_bytes": 80, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 13, + "command": "out=$(ls -d dist build .next out public 2>/dev/null | head -3); echo \"${out:-no build output on disk \u2014 size checks need a build or are skipped (say which)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no build output on disk \u2014 size checks need a build or are skipped (say which)\n", + "stdout_bytes": 80, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 13, + "command": "out=$(ls -d dist build .next out public 2>/dev/null | head -3); echo \"${out:-no build output on disk \u2014 size checks need a build or are skipped (say which)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no build output on disk \u2014 size checks need a build or are skipped (say which)\n", + "stdout_bytes": 80, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 13, + "command": "out=$(ls -d dist build .next out public 2>/dev/null | head -3); echo \"${out:-no build output on disk \u2014 size checks need a build or are skipped (say which)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "public\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 13, + "command": "out=$(ls -d dist build .next out public 2>/dev/null | head -3); echo \"${out:-no build output on disk \u2014 size checks need a build or are skipped (say which)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "public\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 14, + "command": "out=$(ls .github/workflows/ 2>/dev/null | head -6); echo \"${out:-none}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "validate.yml\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 14, + "command": "out=$(ls .github/workflows/ 2>/dev/null | head -6); echo \"${out:-none}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "validate.yml\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 14, + "command": "out=$(ls .github/workflows/ 2>/dev/null | head -6); echo \"${out:-none}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 14, + "command": "out=$(ls .github/workflows/ 2>/dev/null | head -6); echo \"${out:-none}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 14, + "command": "out=$(ls .github/workflows/ 2>/dev/null | head -6); echo \"${out:-none}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "ci.yml\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/perf-audit/SKILL.md", + "line": 14, + "command": "out=$(ls .github/workflows/ 2>/dev/null | head -6); echo \"${out:-none}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "ci.yml\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 11, + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none \u2014 not a marketplace repo; this skill releases in-repo marketplace plugins only}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": ".claude-plugin/marketplace.json\n", + "stdout_bytes": 32, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 11, + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none \u2014 not a marketplace repo; this skill releases in-repo marketplace plugins only}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": ".claude-plugin/marketplace.json\n", + "stdout_bytes": 32, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 11, + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none \u2014 not a marketplace repo; this skill releases in-repo marketplace plugins only}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none \u2014 not a marketplace repo; this skill releases in-repo marketplace plugins only\n", + "stdout_bytes": 86, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 11, + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none \u2014 not a marketplace repo; this skill releases in-repo marketplace plugins only}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none \u2014 not a marketplace repo; this skill releases in-repo marketplace plugins only\n", + "stdout_bytes": 86, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 11, + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none \u2014 not a marketplace repo; this skill releases in-repo marketplace plugins only}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none \u2014 not a marketplace repo; this skill releases in-repo marketplace plugins only\n", + "stdout_bytes": 86, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 11, + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none \u2014 not a marketplace repo; this skill releases in-repo marketplace plugins only}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none \u2014 not a marketplace repo; this skill releases in-repo marketplace plugins only\n", + "stdout_bytes": 86, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 12, + "command": "out=$(find plugins -maxdepth 3 -name plugin.json -path \"*/.claude-plugin/*\" 2>/dev/null | sort | while read -r p; do python3 -c \"import json,sys; d=json.load(open(sys.argv[1])); print(d['name'], d['version'])\" \"$p\" 2>/dev/null; done); echo \"${out:-none found under plugins/}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "clownware-astro-tools 0.5.1\nclownware-code-tools 0.15.2\nclownware-go-tools 0.3.2\npezza-design-system 0.5.2\nclownware-rust-tools 0.1.1\n", + "stdout_bytes": 134, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 12, + "command": "out=$(find plugins -maxdepth 3 -name plugin.json -path \"*/.claude-plugin/*\" 2>/dev/null | sort | while read -r p; do python3 -c \"import json,sys; d=json.load(open(sys.argv[1])); print(d['name'], d['version'])\" \"$p\" 2>/dev/null; done); echo \"${out:-none found under plugins/}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "clownware-astro-tools 0.5.1\nclownware-code-tools 0.15.2\nclownware-go-tools 0.3.2\npezza-design-system 0.5.2\nclownware-rust-tools 0.1.1\n", + "stdout_bytes": 134, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 12, + "command": "out=$(find plugins -maxdepth 3 -name plugin.json -path \"*/.claude-plugin/*\" 2>/dev/null | sort | while read -r p; do python3 -c \"import json,sys; d=json.load(open(sys.argv[1])); print(d['name'], d['version'])\" \"$p\" 2>/dev/null; done); echo \"${out:-none found under plugins/}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found under plugins/\n", + "stdout_bytes": 26, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 12, + "command": "out=$(find plugins -maxdepth 3 -name plugin.json -path \"*/.claude-plugin/*\" 2>/dev/null | sort | while read -r p; do python3 -c \"import json,sys; d=json.load(open(sys.argv[1])); print(d['name'], d['version'])\" \"$p\" 2>/dev/null; done); echo \"${out:-none found under plugins/}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found under plugins/\n", + "stdout_bytes": 26, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 12, + "command": "out=$(find plugins -maxdepth 3 -name plugin.json -path \"*/.claude-plugin/*\" 2>/dev/null | sort | while read -r p; do python3 -c \"import json,sys; d=json.load(open(sys.argv[1])); print(d['name'], d['version'])\" \"$p\" 2>/dev/null; done); echo \"${out:-none found under plugins/}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found under plugins/\n", + "stdout_bytes": 26, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 12, + "command": "out=$(find plugins -maxdepth 3 -name plugin.json -path \"*/.claude-plugin/*\" 2>/dev/null | sort | while read -r p; do python3 -c \"import json,sys; d=json.load(open(sys.argv[1])); print(d['name'], d['version'])\" \"$p\" 2>/dev/null; done); echo \"${out:-none found under plugins/}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found under plugins/\n", + "stdout_bytes": 26, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 13, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo\"; fi", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "clean\n", + "stdout_bytes": 6, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 13, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo\"; fi", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "clean\n", + "stdout_bytes": 6, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 13, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo\"; fi", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "not a git repo\n", + "stdout_bytes": 15, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 13, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo\"; fi", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "not a git repo\n", + "stdout_bytes": 15, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 13, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo\"; fi", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "clean\n", + "stdout_bytes": 6, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 13, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -10); echo \"${out:-clean}\"; else echo \"not a git repo\"; fi", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "clean\n", + "stdout_bytes": 6, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 14, + "command": "out=$(git log @{u}..HEAD --oneline 2>/dev/null | head -5); echo \"${out:-none (or no upstream)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none (or no upstream)\n", + "stdout_bytes": 22, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 14, + "command": "out=$(git log @{u}..HEAD --oneline 2>/dev/null | head -5); echo \"${out:-none (or no upstream)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none (or no upstream)\n", + "stdout_bytes": 22, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 14, + "command": "out=$(git log @{u}..HEAD --oneline 2>/dev/null | head -5); echo \"${out:-none (or no upstream)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none (or no upstream)\n", + "stdout_bytes": 22, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 14, + "command": "out=$(git log @{u}..HEAD --oneline 2>/dev/null | head -5); echo \"${out:-none (or no upstream)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none (or no upstream)\n", + "stdout_bytes": 22, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 14, + "command": "out=$(git log @{u}..HEAD --oneline 2>/dev/null | head -5); echo \"${out:-none (or no upstream)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none (or no upstream)\n", + "stdout_bytes": 22, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/plugin-release/SKILL.md", + "line": 14, + "command": "out=$(git log @{u}..HEAD --oneline 2>/dev/null | head -5); echo \"${out:-none (or no upstream)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none (or no upstream)\n", + "stdout_bytes": 22, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 11, + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "main\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 11, + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "main\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 11, + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "master\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 11, + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "master\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 11, + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "main\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 11, + "command": "git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "main\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 14, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git log \"$BASE\"...HEAD --oneline 2>/dev/null); echo \"${out:-(no commits diverged from $BASE)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no commits diverged from main)\n", + "stdout_bytes": 32, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 14, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git log \"$BASE\"...HEAD --oneline 2>/dev/null); echo \"${out:-(no commits diverged from $BASE)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no commits diverged from main)\n", + "stdout_bytes": 32, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 14, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git log \"$BASE\"...HEAD --oneline 2>/dev/null); echo \"${out:-(no commits diverged from $BASE)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no commits diverged from master)\n", + "stdout_bytes": 34, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 14, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git log \"$BASE\"...HEAD --oneline 2>/dev/null); echo \"${out:-(no commits diverged from $BASE)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no commits diverged from master)\n", + "stdout_bytes": 34, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 14, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git log \"$BASE\"...HEAD --oneline 2>/dev/null); echo \"${out:-(no commits diverged from $BASE)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no commits diverged from main)\n", + "stdout_bytes": 32, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 14, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git log \"$BASE\"...HEAD --oneline 2>/dev/null); echo \"${out:-(no commits diverged from $BASE)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no commits diverged from main)\n", + "stdout_bytes": 32, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 17, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git diff \"$BASE\"...HEAD --stat 2>/dev/null); echo \"${out:-(no diff found)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 17, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git diff \"$BASE\"...HEAD --stat 2>/dev/null); echo \"${out:-(no diff found)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 17, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git diff \"$BASE\"...HEAD --stat 2>/dev/null); echo \"${out:-(no diff found)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 17, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git diff \"$BASE\"...HEAD --stat 2>/dev/null); echo \"${out:-(no diff found)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 17, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git diff \"$BASE\"...HEAD --stat 2>/dev/null); echo \"${out:-(no diff found)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 17, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); out=$(git diff \"$BASE\"...HEAD --stat 2>/dev/null); echo \"${out:-(no diff found)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 20, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=$(git diff \"$BASE\"...HEAD 2>/dev/null); if [ -z \"$d\" ]; then echo \"(no diff found)\"; elif [ ${#d} -gt 20000 ]; then printf '%.20000s' \"$d\"; printf '\\n[diff truncated at 20k chars - run git diff \"%s\"...HEAD for the rest]\\n' \"$BASE\"; else printf '%s\\n' \"$d\"; fi", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 20, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=$(git diff \"$BASE\"...HEAD 2>/dev/null); if [ -z \"$d\" ]; then echo \"(no diff found)\"; elif [ ${#d} -gt 20000 ]; then printf '%.20000s' \"$d\"; printf '\\n[diff truncated at 20k chars - run git diff \"%s\"...HEAD for the rest]\\n' \"$BASE\"; else printf '%s\\n' \"$d\"; fi", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 20, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=$(git diff \"$BASE\"...HEAD 2>/dev/null); if [ -z \"$d\" ]; then echo \"(no diff found)\"; elif [ ${#d} -gt 20000 ]; then printf '%.20000s' \"$d\"; printf '\\n[diff truncated at 20k chars - run git diff \"%s\"...HEAD for the rest]\\n' \"$BASE\"; else printf '%s\\n' \"$d\"; fi", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 20, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=$(git diff \"$BASE\"...HEAD 2>/dev/null); if [ -z \"$d\" ]; then echo \"(no diff found)\"; elif [ ${#d} -gt 20000 ]; then printf '%.20000s' \"$d\"; printf '\\n[diff truncated at 20k chars - run git diff \"%s\"...HEAD for the rest]\\n' \"$BASE\"; else printf '%s\\n' \"$d\"; fi", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 20, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=$(git diff \"$BASE\"...HEAD 2>/dev/null); if [ -z \"$d\" ]; then echo \"(no diff found)\"; elif [ ${#d} -gt 20000 ]; then printf '%.20000s' \"$d\"; printf '\\n[diff truncated at 20k chars - run git diff \"%s\"...HEAD for the rest]\\n' \"$BASE\"; else printf '%s\\n' \"$d\"; fi", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/pr-description/SKILL.md", + "line": 20, + "command": "BASE=$(git rev-parse -q --verify develop >/dev/null 2>&1 && echo develop || { git rev-parse -q --verify main >/dev/null 2>&1 && echo main || echo master; }); d=$(git diff \"$BASE\"...HEAD 2>/dev/null); if [ -z \"$d\" ]; then echo \"(no diff found)\"; elif [ ${#d} -gt 20000 ]; then printf '%.20000s' \"$d\"; printf '\\n[diff truncated at 20k chars - run git diff \"%s\"...HEAD for the rest]\\n' \"$BASE\"; else printf '%s\\n' \"$d\"; fi", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 11, + "command": "node --version 2>/dev/null || echo \"not found\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "v24.19.0\n", + "stdout_bytes": 9, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 11, + "command": "node --version 2>/dev/null || echo \"not found\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "v24.19.0\n", + "stdout_bytes": 9, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 11, + "command": "node --version 2>/dev/null || echo \"not found\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "v24.19.0\n", + "stdout_bytes": 9, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 11, + "command": "node --version 2>/dev/null || echo \"not found\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "v24.19.0\n", + "stdout_bytes": 9, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 11, + "command": "node --version 2>/dev/null || echo \"not found\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "v24.19.0\n", + "stdout_bytes": 9, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 11, + "command": "node --version 2>/dev/null || echo \"not found\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "v24.19.0\n", + "stdout_bytes": 9, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 12, + "command": "(which pnpm > /dev/null 2>&1 && echo \"pnpm $(pnpm --version)\") || (which npm > /dev/null 2>&1 && echo \"npm $(npm --version)\") || echo \"none found\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "pnpm 10.13.1\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 12, + "command": "(which pnpm > /dev/null 2>&1 && echo \"pnpm $(pnpm --version)\") || (which npm > /dev/null 2>&1 && echo \"npm $(npm --version)\") || echo \"none found\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "pnpm 10.13.1\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 12, + "command": "(which pnpm > /dev/null 2>&1 && echo \"pnpm $(pnpm --version)\") || (which npm > /dev/null 2>&1 && echo \"npm $(npm --version)\") || echo \"none found\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "pnpm 10.13.1\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 12, + "command": "(which pnpm > /dev/null 2>&1 && echo \"pnpm $(pnpm --version)\") || (which npm > /dev/null 2>&1 && echo \"npm $(npm --version)\") || echo \"none found\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "pnpm 10.13.1\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 12, + "command": "(which pnpm > /dev/null 2>&1 && echo \"pnpm $(pnpm --version)\") || (which npm > /dev/null 2>&1 && echo \"npm $(npm --version)\") || echo \"none found\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "pnpm 10.13.1\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 12, + "command": "(which pnpm > /dev/null 2>&1 && echo \"pnpm $(pnpm --version)\") || (which npm > /dev/null 2>&1 && echo \"npm $(npm --version)\") || echo \"none found\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "pnpm 10.13.1\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 13, + "command": "uname -s", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "Darwin\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 13, + "command": "uname -s", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "Darwin\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 13, + "command": "uname -s", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "Darwin\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 13, + "command": "uname -s", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "Darwin\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 13, + "command": "uname -s", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "Darwin\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 13, + "command": "uname -s", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "Darwin\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 13, + "command": "uname -m", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "arm64\n", + "stdout_bytes": 6, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 13, + "command": "uname -m", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "arm64\n", + "stdout_bytes": 6, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 13, + "command": "uname -m", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "arm64\n", + "stdout_bytes": 6, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 13, + "command": "uname -m", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "arm64\n", + "stdout_bytes": 6, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 13, + "command": "uname -m", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "arm64\n", + "stdout_bytes": 6, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 13, + "command": "uname -m", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "arm64\n", + "stdout_bytes": 6, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 14, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -20); echo \"${out:-clean working tree}\"; else echo \"not a git repo\"; fi", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "clean working tree\n", + "stdout_bytes": 19, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 14, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -20); echo \"${out:-clean working tree}\"; else echo \"not a git repo\"; fi", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "clean working tree\n", + "stdout_bytes": 19, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 14, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -20); echo \"${out:-clean working tree}\"; else echo \"not a git repo\"; fi", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "not a git repo\n", + "stdout_bytes": 15, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 14, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -20); echo \"${out:-clean working tree}\"; else echo \"not a git repo\"; fi", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "not a git repo\n", + "stdout_bytes": 15, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 14, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -20); echo \"${out:-clean working tree}\"; else echo \"not a git repo\"; fi", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "clean working tree\n", + "stdout_bytes": 19, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 14, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then out=$(git status --short | head -20); echo \"${out:-clean working tree}\"; else echo \"not a git repo\"; fi", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "clean working tree\n", + "stdout_bytes": 19, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 15, + "command": "git log --oneline -5 2>/dev/null || echo \"no git history\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "8240e3b fix(code-tools): githits-research convention-establishing trigger (0.15.2)\n17c5ea3 fix(code-tools): githits-research implementation-time triggers (0.15.1)\n9f37e13 feat(code-tools): githits-research skill - OSS research conventions (0.15.0)\n6203c71 chore(manifests): declare license on every in-repo plugin; count-free product-dev catalog text\ncd7a37f chore(ci): cap every job with timeout-minutes; cancel superseded PR runs\n", + "stdout_bytes": 432, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 15, + "command": "git log --oneline -5 2>/dev/null || echo \"no git history\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "8240e3b fix(code-tools): githits-research convention-establishing trigger (0.15.2)\n17c5ea3 fix(code-tools): githits-research implementation-time triggers (0.15.1)\n9f37e13 feat(code-tools): githits-research skill - OSS research conventions (0.15.0)\n6203c71 chore(manifests): declare license on every in-repo plugin; count-free product-dev catalog text\ncd7a37f chore(ci): cap every job with timeout-minutes; cancel superseded PR runs\n", + "stdout_bytes": 432, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 15, + "command": "git log --oneline -5 2>/dev/null || echo \"no git history\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no git history\n", + "stdout_bytes": 15, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 15, + "command": "git log --oneline -5 2>/dev/null || echo \"no git history\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no git history\n", + "stdout_bytes": 15, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 15, + "command": "git log --oneline -5 2>/dev/null || echo \"no git history\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "2c287bf fix(cloudflare): rate errors over the last complete day and re-emit every run (#44)\n6c676a8 perf(core): resolve latest signals through a signal_latest pointer table (#43)\nfbcce77 docs(readme): poller credential guidance matches the runner (#41)\n938c65b docs: add CLAUDE.md agent operating manual (#40)\nfb4bb07 feat(prompt): worker error-rate hand-off prompt (#38)\n", + "stdout_bytes": 372, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/root-cause-debug/SKILL.md", + "line": 15, + "command": "git log --oneline -5 2>/dev/null || echo \"no git history\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "2c287bf fix(cloudflare): rate errors over the last complete day and re-emit every run (#44)\n6c676a8 perf(core): resolve latest signals through a signal_latest pointer table (#43)\nfbcce77 docs(readme): poller credential guidance matches the runner (#41)\n938c65b docs: add CLAUDE.md agent operating manual (#40)\nfb4bb07 feat(prompt): worker error-rate hand-off prompt (#38)\n", + "stdout_bytes": 372, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 11, + "command": "out=$(ls go.mod package.json pyproject.toml requirements.txt Cargo.toml pom.xml build.gradle Gemfile composer.json 2>/dev/null); echo \"${out:-unrecognized \u2014 infer from source extensions}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "unrecognized \u2014 infer from source extensions\n", + "stdout_bytes": 46, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 11, + "command": "out=$(ls go.mod package.json pyproject.toml requirements.txt Cargo.toml pom.xml build.gradle Gemfile composer.json 2>/dev/null); echo \"${out:-unrecognized \u2014 infer from source extensions}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "unrecognized \u2014 infer from source extensions\n", + "stdout_bytes": 46, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 11, + "command": "out=$(ls go.mod package.json pyproject.toml requirements.txt Cargo.toml pom.xml build.gradle Gemfile composer.json 2>/dev/null); echo \"${out:-unrecognized \u2014 infer from source extensions}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "unrecognized \u2014 infer from source extensions\n", + "stdout_bytes": 46, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 11, + "command": "out=$(ls go.mod package.json pyproject.toml requirements.txt Cargo.toml pom.xml build.gradle Gemfile composer.json 2>/dev/null); echo \"${out:-unrecognized \u2014 infer from source extensions}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "unrecognized \u2014 infer from source extensions\n", + "stdout_bytes": 46, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 11, + "command": "out=$(ls go.mod package.json pyproject.toml requirements.txt Cargo.toml pom.xml build.gradle Gemfile composer.json 2>/dev/null); echo \"${out:-unrecognized \u2014 infer from source extensions}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "package.json\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 11, + "command": "out=$(ls go.mod package.json pyproject.toml requirements.txt Cargo.toml pom.xml build.gradle Gemfile composer.json 2>/dev/null); echo \"${out:-unrecognized \u2014 infer from source extensions}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "package.json\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 12, + "command": "out=$(command -v govulncheck npm pip-audit cargo-audit osv-scanner trivy snyk bundler-audit 2>/dev/null); echo \"${out:-none on PATH \u2014 audit deps by reading lockfiles + advisories}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "/opt/homebrew/bin/npm\n", + "stdout_bytes": 22, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 12, + "command": "out=$(command -v govulncheck npm pip-audit cargo-audit osv-scanner trivy snyk bundler-audit 2>/dev/null); echo \"${out:-none on PATH \u2014 audit deps by reading lockfiles + advisories}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "/opt/homebrew/bin/npm\n", + "stdout_bytes": 22, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 12, + "command": "out=$(command -v govulncheck npm pip-audit cargo-audit osv-scanner trivy snyk bundler-audit 2>/dev/null); echo \"${out:-none on PATH \u2014 audit deps by reading lockfiles + advisories}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "/opt/homebrew/bin/npm\n", + "stdout_bytes": 22, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 12, + "command": "out=$(command -v govulncheck npm pip-audit cargo-audit osv-scanner trivy snyk bundler-audit 2>/dev/null); echo \"${out:-none on PATH \u2014 audit deps by reading lockfiles + advisories}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "/opt/homebrew/bin/npm\n", + "stdout_bytes": 22, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 12, + "command": "out=$(command -v govulncheck npm pip-audit cargo-audit osv-scanner trivy snyk bundler-audit 2>/dev/null); echo \"${out:-none on PATH \u2014 audit deps by reading lockfiles + advisories}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "/opt/homebrew/bin/npm\n", + "stdout_bytes": 22, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 12, + "command": "out=$(command -v govulncheck npm pip-audit cargo-audit osv-scanner trivy snyk bundler-audit 2>/dev/null); echo \"${out:-none on PATH \u2014 audit deps by reading lockfiles + advisories}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "/opt/homebrew/bin/npm\n", + "stdout_bytes": 22, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 13, + "command": "out=$(rg -l -i \"cookie|jwt|session|password|csrf|oauth|bcrypt|crypto/rand|subtle\\.|SetCookie|Authorization\" --iglob '!*_test.*' --iglob '!node_modules' 2>/dev/null | head -20); echo \"${out:-none matched \u2014 locate auth by reading routing/middleware}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "README.md\ndocs/ROADMAP.md\nplugins/code-tools/hooks/git-guard.sh\nplugins/code-tools/skills/test-audit/SKILL.md\nplugins/code-tools/skills/arch-audit/SKILL.md\nplugins/code-tools/skills/audit-fix/SKILL.md\nplugins/code-tools/skills/security-audit/SKILL.md\nplugins/code-tools/skills/plugin-release/SKILL.md\n", + "stdout_bytes": 301, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 13, + "command": "out=$(rg -l -i \"cookie|jwt|session|password|csrf|oauth|bcrypt|crypto/rand|subtle\\.|SetCookie|Authorization\" --iglob '!*_test.*' --iglob '!node_modules' 2>/dev/null | head -20); echo \"${out:-none matched \u2014 locate auth by reading routing/middleware}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "README.md\ndocs/ROADMAP.md\nplugins/code-tools/skills/security-audit/SKILL.md\nplugins/code-tools/skills/plugin-release/SKILL.md\nplugins/code-tools/hooks/git-guard.sh\nplugins/code-tools/skills/arch-audit/SKILL.md\nplugins/code-tools/skills/test-audit/SKILL.md\nplugins/code-tools/skills/audit-fix/SKILL.md\n", + "stdout_bytes": 301, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 13, + "command": "out=$(rg -l -i \"cookie|jwt|session|password|csrf|oauth|bcrypt|crypto/rand|subtle\\.|SetCookie|Authorization\" --iglob '!*_test.*' --iglob '!node_modules' 2>/dev/null | head -20); echo \"${out:-none matched \u2014 locate auth by reading routing/middleware}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none matched \u2014 locate auth by reading routing/middleware\n", + "stdout_bytes": 59, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 13, + "command": "out=$(rg -l -i \"cookie|jwt|session|password|csrf|oauth|bcrypt|crypto/rand|subtle\\.|SetCookie|Authorization\" --iglob '!*_test.*' --iglob '!node_modules' 2>/dev/null | head -20); echo \"${out:-none matched \u2014 locate auth by reading routing/middleware}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none matched \u2014 locate auth by reading routing/middleware\n", + "stdout_bytes": 59, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 13, + "command": "out=$(rg -l -i \"cookie|jwt|session|password|csrf|oauth|bcrypt|crypto/rand|subtle\\.|SetCookie|Authorization\" --iglob '!*_test.*' --iglob '!node_modules' 2>/dev/null | head -20); echo \"${out:-none matched \u2014 locate auth by reading routing/middleware}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "src/pollers/manifests.ts\nsrc/pollers/cloudflare.ts\nsrc/pollers/openai-costs.ts\ntest/enhancements.test.ts\ntest/github.test.ts\npackage-lock.json\nsrc/ingest.ts\nsrc/pollers/github.ts\nsrc/pollers/claude-code.ts\ntest/access.test.ts\ntest/ingest.test.ts\ntest/ui.test.ts\nsrc/index.tsx\npublic/htmx.min.js\nsrc/pollers/x-usage.ts\nsrc/core/notify.ts\nsrc/config.ts\nsrc/core/access.ts\nREADME.md\n", + "stdout_bytes": 380, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 13, + "command": "out=$(rg -l -i \"cookie|jwt|session|password|csrf|oauth|bcrypt|crypto/rand|subtle\\.|SetCookie|Authorization\" --iglob '!*_test.*' --iglob '!node_modules' 2>/dev/null | head -20); echo \"${out:-none matched \u2014 locate auth by reading routing/middleware}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "test/github.test.ts\ntest/enhancements.test.ts\ntest/ui.test.ts\ntest/access.test.ts\nsrc/pollers/manifests.ts\ntest/ingest.test.ts\npackage-lock.json\npublic/htmx.min.js\nsrc/index.tsx\nsrc/pollers/openai-costs.ts\nsrc/config.ts\nsrc/ingest.ts\nsrc/pollers/cloudflare.ts\nsrc/pollers/claude-code.ts\nsrc/pollers/x-usage.ts\nsrc/pollers/github.ts\nREADME.md\nsrc/core/notify.ts\nsrc/core/access.ts\n", + "stdout_bytes": 380, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 14, + "command": "out=$(rg -l -i \"threat model|security|owasp|rls|csrf|xss\" docs/ CLAUDE.md CONTRIBUTING.md SECURITY.md 2>/dev/null | head -8); echo \"${out:-none found \u2014 no written threat model (note it)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found \u2014 no written threat model (note it)\n", + "stdout_bytes": 49, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 14, + "command": "out=$(rg -l -i \"threat model|security|owasp|rls|csrf|xss\" docs/ CLAUDE.md CONTRIBUTING.md SECURITY.md 2>/dev/null | head -8); echo \"${out:-none found \u2014 no written threat model (note it)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found \u2014 no written threat model (note it)\n", + "stdout_bytes": 49, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 14, + "command": "out=$(rg -l -i \"threat model|security|owasp|rls|csrf|xss\" docs/ CLAUDE.md CONTRIBUTING.md SECURITY.md 2>/dev/null | head -8); echo \"${out:-none found \u2014 no written threat model (note it)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found \u2014 no written threat model (note it)\n", + "stdout_bytes": 49, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 14, + "command": "out=$(rg -l -i \"threat model|security|owasp|rls|csrf|xss\" docs/ CLAUDE.md CONTRIBUTING.md SECURITY.md 2>/dev/null | head -8); echo \"${out:-none found \u2014 no written threat model (note it)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found \u2014 no written threat model (note it)\n", + "stdout_bytes": 49, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 14, + "command": "out=$(rg -l -i \"threat model|security|owasp|rls|csrf|xss\" docs/ CLAUDE.md CONTRIBUTING.md SECURITY.md 2>/dev/null | head -8); echo \"${out:-none found \u2014 no written threat model (note it)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "CLAUDE.md\ndocs/adr/001-read-mostly-system-of-record.md\n", + "stdout_bytes": 55, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 14, + "command": "out=$(rg -l -i \"threat model|security|owasp|rls|csrf|xss\" docs/ CLAUDE.md CONTRIBUTING.md SECURITY.md 2>/dev/null | head -8); echo \"${out:-none found \u2014 no written threat model (note it)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "CLAUDE.md\ndocs/adr/001-read-mostly-system-of-record.md\n", + "stdout_bytes": 55, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 15, + "command": "out=$(ls .env .env.example .env.local docker-compose.yml Dockerfile 2>/dev/null; ls .github/workflows/ 2>/dev/null); echo \"${out:-none}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "validate.yml\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 15, + "command": "out=$(ls .env .env.example .env.local docker-compose.yml Dockerfile 2>/dev/null; ls .github/workflows/ 2>/dev/null); echo \"${out:-none}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "validate.yml\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 15, + "command": "out=$(ls .env .env.example .env.local docker-compose.yml Dockerfile 2>/dev/null; ls .github/workflows/ 2>/dev/null); echo \"${out:-none}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 15, + "command": "out=$(ls .env .env.example .env.local docker-compose.yml Dockerfile 2>/dev/null; ls .github/workflows/ 2>/dev/null); echo \"${out:-none}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 15, + "command": "out=$(ls .env .env.example .env.local docker-compose.yml Dockerfile 2>/dev/null; ls .github/workflows/ 2>/dev/null); echo \"${out:-none}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "ci.yml\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 15, + "command": "out=$(ls .env .env.example .env.local docker-compose.yml Dockerfile 2>/dev/null; ls .github/workflows/ 2>/dev/null); echo \"${out:-none}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "ci.yml\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 16, + "command": "out=$(git log --all --diff-filter=A --name-only --format= -- '*.env' '.env*' '*.pem' '*.key' '*_rsa' 2>/dev/null | grep -v '\\.env\\.example$' | sort -u | head); echo \"${out:-none \u2014 no obvious secret files in history (still grep contents)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none \u2014 no obvious secret files in history (still grep contents)\n", + "stdout_bytes": 66, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 16, + "command": "out=$(git log --all --diff-filter=A --name-only --format= -- '*.env' '.env*' '*.pem' '*.key' '*_rsa' 2>/dev/null | grep -v '\\.env\\.example$' | sort -u | head); echo \"${out:-none \u2014 no obvious secret files in history (still grep contents)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none \u2014 no obvious secret files in history (still grep contents)\n", + "stdout_bytes": 66, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 16, + "command": "out=$(git log --all --diff-filter=A --name-only --format= -- '*.env' '.env*' '*.pem' '*.key' '*_rsa' 2>/dev/null | grep -v '\\.env\\.example$' | sort -u | head); echo \"${out:-none \u2014 no obvious secret files in history (still grep contents)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none \u2014 no obvious secret files in history (still grep contents)\n", + "stdout_bytes": 66, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 16, + "command": "out=$(git log --all --diff-filter=A --name-only --format= -- '*.env' '.env*' '*.pem' '*.key' '*_rsa' 2>/dev/null | grep -v '\\.env\\.example$' | sort -u | head); echo \"${out:-none \u2014 no obvious secret files in history (still grep contents)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none \u2014 no obvious secret files in history (still grep contents)\n", + "stdout_bytes": 66, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 16, + "command": "out=$(git log --all --diff-filter=A --name-only --format= -- '*.env' '.env*' '*.pem' '*.key' '*_rsa' 2>/dev/null | grep -v '\\.env\\.example$' | sort -u | head); echo \"${out:-none \u2014 no obvious secret files in history (still grep contents)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none \u2014 no obvious secret files in history (still grep contents)\n", + "stdout_bytes": 66, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 16, + "command": "out=$(git log --all --diff-filter=A --name-only --format= -- '*.env' '.env*' '*.pem' '*.key' '*_rsa' 2>/dev/null | grep -v '\\.env\\.example$' | sort -u | head); echo \"${out:-none \u2014 no obvious secret files in history (still grep contents)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none \u2014 no obvious secret files in history (still grep contents)\n", + "stdout_bytes": 66, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 17, + "command": "out=$(present=$(find . -maxdepth 1 -type f \\( -name \".env\" -o -name \".env.*\" \\) ! -name \"*.example\" ! -name \"*.tpl\" ! -name \"*.sample\" ! -name \"*.template\" 2>/dev/null); if [ -z \"$present\" ]; then echo \"none present on disk (templates only or absent)\"; else printf \"%s\\n\" \"$present\" | while IFS= read -r f; do if git check-ignore -q \"$f\" 2>/dev/null; then echo \"${f#./} gitignored\"; else echo \"${f#./} NOT gitignored \u2014 one commit from a leak\"; fi; done; fi); echo \"${out:-secret-file check produced no output}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none present on disk (templates only or absent)\n", + "stdout_bytes": 48, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 17, + "command": "out=$(present=$(find . -maxdepth 1 -type f \\( -name \".env\" -o -name \".env.*\" \\) ! -name \"*.example\" ! -name \"*.tpl\" ! -name \"*.sample\" ! -name \"*.template\" 2>/dev/null); if [ -z \"$present\" ]; then echo \"none present on disk (templates only or absent)\"; else printf \"%s\\n\" \"$present\" | while IFS= read -r f; do if git check-ignore -q \"$f\" 2>/dev/null; then echo \"${f#./} gitignored\"; else echo \"${f#./} NOT gitignored \u2014 one commit from a leak\"; fi; done; fi); echo \"${out:-secret-file check produced no output}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none present on disk (templates only or absent)\n", + "stdout_bytes": 48, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 17, + "command": "out=$(present=$(find . -maxdepth 1 -type f \\( -name \".env\" -o -name \".env.*\" \\) ! -name \"*.example\" ! -name \"*.tpl\" ! -name \"*.sample\" ! -name \"*.template\" 2>/dev/null); if [ -z \"$present\" ]; then echo \"none present on disk (templates only or absent)\"; else printf \"%s\\n\" \"$present\" | while IFS= read -r f; do if git check-ignore -q \"$f\" 2>/dev/null; then echo \"${f#./} gitignored\"; else echo \"${f#./} NOT gitignored \u2014 one commit from a leak\"; fi; done; fi); echo \"${out:-secret-file check produced no output}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none present on disk (templates only or absent)\n", + "stdout_bytes": 48, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 17, + "command": "out=$(present=$(find . -maxdepth 1 -type f \\( -name \".env\" -o -name \".env.*\" \\) ! -name \"*.example\" ! -name \"*.tpl\" ! -name \"*.sample\" ! -name \"*.template\" 2>/dev/null); if [ -z \"$present\" ]; then echo \"none present on disk (templates only or absent)\"; else printf \"%s\\n\" \"$present\" | while IFS= read -r f; do if git check-ignore -q \"$f\" 2>/dev/null; then echo \"${f#./} gitignored\"; else echo \"${f#./} NOT gitignored \u2014 one commit from a leak\"; fi; done; fi); echo \"${out:-secret-file check produced no output}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none present on disk (templates only or absent)\n", + "stdout_bytes": 48, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 17, + "command": "out=$(present=$(find . -maxdepth 1 -type f \\( -name \".env\" -o -name \".env.*\" \\) ! -name \"*.example\" ! -name \"*.tpl\" ! -name \"*.sample\" ! -name \"*.template\" 2>/dev/null); if [ -z \"$present\" ]; then echo \"none present on disk (templates only or absent)\"; else printf \"%s\\n\" \"$present\" | while IFS= read -r f; do if git check-ignore -q \"$f\" 2>/dev/null; then echo \"${f#./} gitignored\"; else echo \"${f#./} NOT gitignored \u2014 one commit from a leak\"; fi; done; fi); echo \"${out:-secret-file check produced no output}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none present on disk (templates only or absent)\n", + "stdout_bytes": 48, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 17, + "command": "out=$(present=$(find . -maxdepth 1 -type f \\( -name \".env\" -o -name \".env.*\" \\) ! -name \"*.example\" ! -name \"*.tpl\" ! -name \"*.sample\" ! -name \"*.template\" 2>/dev/null); if [ -z \"$present\" ]; then echo \"none present on disk (templates only or absent)\"; else printf \"%s\\n\" \"$present\" | while IFS= read -r f; do if git check-ignore -q \"$f\" 2>/dev/null; then echo \"${f#./} gitignored\"; else echo \"${f#./} NOT gitignored \u2014 one commit from a leak\"; fi; done; fi); echo \"${out:-secret-file check produced no output}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none present on disk (templates only or absent)\n", + "stdout_bytes": 48, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 18, + "command": "out=$(rg -l -i \"op run|op://|op inject|sops|vault kv|doppler|aws secretsmanager|gcp secret|azure keyvault|1password\" .env.tpl .env.example Taskfile.yml Makefile justfile docker-compose.yml .github/workflows 2>/dev/null | head -5); echo \"${out:-no secrets-manager references \u2014 plaintext env is likely the only mechanism (hardening opportunity, not a vuln)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no secrets-manager references \u2014 plaintext env is likely the only mechanism (hardening opportunity, not a vuln)\n", + "stdout_bytes": 113, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 18, + "command": "out=$(rg -l -i \"op run|op://|op inject|sops|vault kv|doppler|aws secretsmanager|gcp secret|azure keyvault|1password\" .env.tpl .env.example Taskfile.yml Makefile justfile docker-compose.yml .github/workflows 2>/dev/null | head -5); echo \"${out:-no secrets-manager references \u2014 plaintext env is likely the only mechanism (hardening opportunity, not a vuln)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no secrets-manager references \u2014 plaintext env is likely the only mechanism (hardening opportunity, not a vuln)\n", + "stdout_bytes": 113, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 18, + "command": "out=$(rg -l -i \"op run|op://|op inject|sops|vault kv|doppler|aws secretsmanager|gcp secret|azure keyvault|1password\" .env.tpl .env.example Taskfile.yml Makefile justfile docker-compose.yml .github/workflows 2>/dev/null | head -5); echo \"${out:-no secrets-manager references \u2014 plaintext env is likely the only mechanism (hardening opportunity, not a vuln)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no secrets-manager references \u2014 plaintext env is likely the only mechanism (hardening opportunity, not a vuln)\n", + "stdout_bytes": 113, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 18, + "command": "out=$(rg -l -i \"op run|op://|op inject|sops|vault kv|doppler|aws secretsmanager|gcp secret|azure keyvault|1password\" .env.tpl .env.example Taskfile.yml Makefile justfile docker-compose.yml .github/workflows 2>/dev/null | head -5); echo \"${out:-no secrets-manager references \u2014 plaintext env is likely the only mechanism (hardening opportunity, not a vuln)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no secrets-manager references \u2014 plaintext env is likely the only mechanism (hardening opportunity, not a vuln)\n", + "stdout_bytes": 113, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 18, + "command": "out=$(rg -l -i \"op run|op://|op inject|sops|vault kv|doppler|aws secretsmanager|gcp secret|azure keyvault|1password\" .env.tpl .env.example Taskfile.yml Makefile justfile docker-compose.yml .github/workflows 2>/dev/null | head -5); echo \"${out:-no secrets-manager references \u2014 plaintext env is likely the only mechanism (hardening opportunity, not a vuln)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no secrets-manager references \u2014 plaintext env is likely the only mechanism (hardening opportunity, not a vuln)\n", + "stdout_bytes": 113, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/security-audit/SKILL.md", + "line": 18, + "command": "out=$(rg -l -i \"op run|op://|op inject|sops|vault kv|doppler|aws secretsmanager|gcp secret|azure keyvault|1password\" .env.tpl .env.example Taskfile.yml Makefile justfile docker-compose.yml .github/workflows 2>/dev/null | head -5); echo \"${out:-no secrets-manager references \u2014 plaintext env is likely the only mechanism (hardening opportunity, not a vuln)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no secrets-manager references \u2014 plaintext env is likely the only mechanism (hardening opportunity, not a vuln)\n", + "stdout_bytes": 113, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-audit/SKILL.md", + "line": 11, + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | sort); echo \"${out:-none found \u2014 nothing to audit; tell the user and stop}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "./plugins/astro-tools/skills/astro-pr-description/SKILL.md\n./plugins/astro-tools/skills/component-scaffold/SKILL.md\n./plugins/astro-tools/skills/perf-budget-check/SKILL.md\n./plugins/code-tools/skills/a11y-audit/SKILL.md\n./plugins/code-tools/skills/adr/SKILL.md\n./plugins/code-tools/skills/arch-audit/SKILL.md\n./plugins/code-tools/skills/audit-fix/SKILL.md\n./plugins/code-tools/skills/deps-audit/SKILL.md\n./plugins/code-tools/skills/design-audit/SKILL.md\n./plugins/code-tools/skills/devops-audit/SKILL.md\n./plugins/code-tools/skills/githits-research/SKILL.md\n./plugins/code-tools/skills/perf-audit/SKILL.md\n./plugins/code-tools/skills/plugin-release/SKILL.md\n./plugins/code-tools/skills/pr-description/SKILL.md\n./plugins/code-tools/skills/root-cause-debug/SKILL.md\n./plugins/code-tools/skills/security-audit/SKILL.md\n./plugins/code-tools/skills/skill-audit/SKILL.md\n./plugins/code-tools/skills/skill-validate/SKILL.md\n./plugins/code-tools/skills/test-audit/SKILL.md\n./plugins/code-tools/skills/test-scaffold/SKILL.md\n./plugins/go-tools/skills/go-pr-description/SKILL.md\n./plugins/go-tools/skills/perf-budget-check/SKILL.md\n./plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md\n./plugins/go-tools/skills/templ-component-scaffold/SKILL.md\n./plugins/go-tools/skills/test-scaffold/SKILL.md\n./plugins/pezza-design-system/skills/pezza-design/SKILL.md\n./plugins/rust-tools/skills/gate-check/SKILL.md\n./plugins/rust-tools/skills/test-scaffold/SKILL.md\n", + "stdout_bytes": 1444, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-audit/SKILL.md", + "line": 11, + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | sort); echo \"${out:-none found \u2014 nothing to audit; tell the user and stop}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "./plugins/astro-tools/skills/astro-pr-description/SKILL.md\n./plugins/astro-tools/skills/component-scaffold/SKILL.md\n./plugins/astro-tools/skills/perf-budget-check/SKILL.md\n./plugins/code-tools/skills/a11y-audit/SKILL.md\n./plugins/code-tools/skills/adr/SKILL.md\n./plugins/code-tools/skills/arch-audit/SKILL.md\n./plugins/code-tools/skills/audit-fix/SKILL.md\n./plugins/code-tools/skills/deps-audit/SKILL.md\n./plugins/code-tools/skills/design-audit/SKILL.md\n./plugins/code-tools/skills/devops-audit/SKILL.md\n./plugins/code-tools/skills/githits-research/SKILL.md\n./plugins/code-tools/skills/perf-audit/SKILL.md\n./plugins/code-tools/skills/plugin-release/SKILL.md\n./plugins/code-tools/skills/pr-description/SKILL.md\n./plugins/code-tools/skills/root-cause-debug/SKILL.md\n./plugins/code-tools/skills/security-audit/SKILL.md\n./plugins/code-tools/skills/skill-audit/SKILL.md\n./plugins/code-tools/skills/skill-validate/SKILL.md\n./plugins/code-tools/skills/test-audit/SKILL.md\n./plugins/code-tools/skills/test-scaffold/SKILL.md\n./plugins/go-tools/skills/go-pr-description/SKILL.md\n./plugins/go-tools/skills/perf-budget-check/SKILL.md\n./plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md\n./plugins/go-tools/skills/templ-component-scaffold/SKILL.md\n./plugins/go-tools/skills/test-scaffold/SKILL.md\n./plugins/pezza-design-system/skills/pezza-design/SKILL.md\n./plugins/rust-tools/skills/gate-check/SKILL.md\n./plugins/rust-tools/skills/test-scaffold/SKILL.md\n", + "stdout_bytes": 1444, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-audit/SKILL.md", + "line": 11, + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | sort); echo \"${out:-none found \u2014 nothing to audit; tell the user and stop}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found \u2014 nothing to audit; tell the user and stop\n", + "stdout_bytes": 56, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-audit/SKILL.md", + "line": 11, + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | sort); echo \"${out:-none found \u2014 nothing to audit; tell the user and stop}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found \u2014 nothing to audit; tell the user and stop\n", + "stdout_bytes": 56, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-audit/SKILL.md", + "line": 11, + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | sort); echo \"${out:-none found \u2014 nothing to audit; tell the user and stop}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found \u2014 nothing to audit; tell the user and stop\n", + "stdout_bytes": 56, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-audit/SKILL.md", + "line": 11, + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | sort); echo \"${out:-none found \u2014 nothing to audit; tell the user and stop}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found \u2014 nothing to audit; tell the user and stop\n", + "stdout_bytes": 56, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -name plugin.json -path \"*/.claude-plugin/*\" -not -path \"*/node_modules/*\" 2>/dev/null | sort); echo \"${out:-none}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "./plugins/astro-tools/.claude-plugin/plugin.json\n./plugins/code-tools/.claude-plugin/plugin.json\n./plugins/go-tools/.claude-plugin/plugin.json\n./plugins/pezza-design-system/.claude-plugin/plugin.json\n./plugins/rust-tools/.claude-plugin/plugin.json\n", + "stdout_bytes": 248, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -name plugin.json -path \"*/.claude-plugin/*\" -not -path \"*/node_modules/*\" 2>/dev/null | sort); echo \"${out:-none}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "./plugins/astro-tools/.claude-plugin/plugin.json\n./plugins/code-tools/.claude-plugin/plugin.json\n./plugins/go-tools/.claude-plugin/plugin.json\n./plugins/pezza-design-system/.claude-plugin/plugin.json\n./plugins/rust-tools/.claude-plugin/plugin.json\n", + "stdout_bytes": 248, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -name plugin.json -path \"*/.claude-plugin/*\" -not -path \"*/node_modules/*\" 2>/dev/null | sort); echo \"${out:-none}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -name plugin.json -path \"*/.claude-plugin/*\" -not -path \"*/node_modules/*\" 2>/dev/null | sort); echo \"${out:-none}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -name plugin.json -path \"*/.claude-plugin/*\" -not -path \"*/node_modules/*\" 2>/dev/null | sort); echo \"${out:-none}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-audit/SKILL.md", + "line": 12, + "command": "out=$(find . -name plugin.json -path \"*/.claude-plugin/*\" -not -path \"*/node_modules/*\" 2>/dev/null | sort); echo \"${out:-none}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-audit/SKILL.md", + "line": 13, + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": ".claude-plugin/marketplace.json\n", + "stdout_bytes": 32, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-audit/SKILL.md", + "line": 13, + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": ".claude-plugin/marketplace.json\n", + "stdout_bytes": 32, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-audit/SKILL.md", + "line": 13, + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-audit/SKILL.md", + "line": 13, + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-audit/SKILL.md", + "line": 13, + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-audit/SKILL.md", + "line": 13, + "command": "out=$(ls .claude-plugin/marketplace.json 2>/dev/null); echo \"${out:-none}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-validate/SKILL.md", + "line": 11, + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none found \u2014 name the skill by absolute path}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "./plugins/astro-tools/skills/component-scaffold/SKILL.md\n./plugins/astro-tools/skills/perf-budget-check/SKILL.md\n./plugins/astro-tools/skills/astro-pr-description/SKILL.md\n./plugins/code-tools/skills/skill-validate/SKILL.md\n./plugins/code-tools/skills/adr/SKILL.md\n./plugins/code-tools/skills/skill-audit/SKILL.md\n./plugins/code-tools/skills/perf-audit/SKILL.md\n./plugins/code-tools/skills/design-audit/SKILL.md\n", + "stdout_bytes": 412, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-validate/SKILL.md", + "line": 11, + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none found \u2014 name the skill by absolute path}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "./plugins/astro-tools/skills/component-scaffold/SKILL.md\n./plugins/astro-tools/skills/perf-budget-check/SKILL.md\n./plugins/astro-tools/skills/astro-pr-description/SKILL.md\n./plugins/code-tools/skills/skill-validate/SKILL.md\n./plugins/code-tools/skills/adr/SKILL.md\n./plugins/code-tools/skills/skill-audit/SKILL.md\n./plugins/code-tools/skills/perf-audit/SKILL.md\n./plugins/code-tools/skills/design-audit/SKILL.md\n", + "stdout_bytes": 412, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-validate/SKILL.md", + "line": 11, + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none found \u2014 name the skill by absolute path}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found \u2014 name the skill by absolute path\n", + "stdout_bytes": 47, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-validate/SKILL.md", + "line": 11, + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none found \u2014 name the skill by absolute path}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found \u2014 name the skill by absolute path\n", + "stdout_bytes": 47, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-validate/SKILL.md", + "line": 11, + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none found \u2014 name the skill by absolute path}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found \u2014 name the skill by absolute path\n", + "stdout_bytes": 47, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-validate/SKILL.md", + "line": 11, + "command": "out=$(find . -name SKILL.md -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" 2>/dev/null | head -8); echo \"${out:-none found \u2014 name the skill by absolute path}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found \u2014 name the skill by absolute path\n", + "stdout_bytes": 47, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-validate/SKILL.md", + "line": 12, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then echo \"git repo \u2014 historical ground truth via worktrees available\"; else echo \"not a git repo \u2014 fixture-based ground truth only\"; fi", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "git repo \u2014 historical ground truth via worktrees available\n", + "stdout_bytes": 61, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-validate/SKILL.md", + "line": 12, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then echo \"git repo \u2014 historical ground truth via worktrees available\"; else echo \"not a git repo \u2014 fixture-based ground truth only\"; fi", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "git repo \u2014 historical ground truth via worktrees available\n", + "stdout_bytes": 61, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-validate/SKILL.md", + "line": 12, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then echo \"git repo \u2014 historical ground truth via worktrees available\"; else echo \"not a git repo \u2014 fixture-based ground truth only\"; fi", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "not a git repo \u2014 fixture-based ground truth only\n", + "stdout_bytes": 51, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-validate/SKILL.md", + "line": 12, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then echo \"git repo \u2014 historical ground truth via worktrees available\"; else echo \"not a git repo \u2014 fixture-based ground truth only\"; fi", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "not a git repo \u2014 fixture-based ground truth only\n", + "stdout_bytes": 51, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-validate/SKILL.md", + "line": 12, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then echo \"git repo \u2014 historical ground truth via worktrees available\"; else echo \"not a git repo \u2014 fixture-based ground truth only\"; fi", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "git repo \u2014 historical ground truth via worktrees available\n", + "stdout_bytes": 61, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/skill-validate/SKILL.md", + "line": 12, + "command": "if git rev-parse --git-dir >/dev/null 2>&1; then echo \"git repo \u2014 historical ground truth via worktrees available\"; else echo \"not a git repo \u2014 fixture-based ground truth only\"; fi", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "git repo \u2014 historical ground truth via worktrees available\n", + "stdout_bytes": 61, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 11, + "command": "out=$(ls go.mod package.json pyproject.toml setup.py Cargo.toml pom.xml build.gradle Gemfile mix.exs 2>/dev/null); echo \"${out:-unrecognized \u2014 infer from source file extensions}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "unrecognized \u2014 infer from source file extensions\n", + "stdout_bytes": 51, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 11, + "command": "out=$(ls go.mod package.json pyproject.toml setup.py Cargo.toml pom.xml build.gradle Gemfile mix.exs 2>/dev/null); echo \"${out:-unrecognized \u2014 infer from source file extensions}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "unrecognized \u2014 infer from source file extensions\n", + "stdout_bytes": 51, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 11, + "command": "out=$(ls go.mod package.json pyproject.toml setup.py Cargo.toml pom.xml build.gradle Gemfile mix.exs 2>/dev/null); echo \"${out:-unrecognized \u2014 infer from source file extensions}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "unrecognized \u2014 infer from source file extensions\n", + "stdout_bytes": 51, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 11, + "command": "out=$(ls go.mod package.json pyproject.toml setup.py Cargo.toml pom.xml build.gradle Gemfile mix.exs 2>/dev/null); echo \"${out:-unrecognized \u2014 infer from source file extensions}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "unrecognized \u2014 infer from source file extensions\n", + "stdout_bytes": 51, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 11, + "command": "out=$(ls go.mod package.json pyproject.toml setup.py Cargo.toml pom.xml build.gradle Gemfile mix.exs 2>/dev/null); echo \"${out:-unrecognized \u2014 infer from source file extensions}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "package.json\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 11, + "command": "out=$(ls go.mod package.json pyproject.toml setup.py Cargo.toml pom.xml build.gradle Gemfile mix.exs 2>/dev/null); echo \"${out:-unrecognized \u2014 infer from source file extensions}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "package.json\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 12, + "command": "out=$(find . \\( -name \"*_test.go\" -o -name \"*.test.*\" -o -name \"*.spec.*\" -o -name \"test_*.py\" -o -name \"*_test.py\" -o -name \"*_spec.rb\" -o -name \"*Test.java\" \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" -not -path \"*/vendor/*\" -not -path \"*/target/*\" 2>/dev/null | wc -l | tr -d ' '); echo \"$out files matching common test patterns (0 may mean an ecosystem this probe misses \u2014 verify before reporting 'no tests')\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "0 files matching common test patterns (0 may mean an ecosystem this probe misses \u2014 verify before reporting 'no tests')\n", + "stdout_bytes": 121, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 12, + "command": "out=$(find . \\( -name \"*_test.go\" -o -name \"*.test.*\" -o -name \"*.spec.*\" -o -name \"test_*.py\" -o -name \"*_test.py\" -o -name \"*_spec.rb\" -o -name \"*Test.java\" \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" -not -path \"*/vendor/*\" -not -path \"*/target/*\" 2>/dev/null | wc -l | tr -d ' '); echo \"$out files matching common test patterns (0 may mean an ecosystem this probe misses \u2014 verify before reporting 'no tests')\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "0 files matching common test patterns (0 may mean an ecosystem this probe misses \u2014 verify before reporting 'no tests')\n", + "stdout_bytes": 121, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 12, + "command": "out=$(find . \\( -name \"*_test.go\" -o -name \"*.test.*\" -o -name \"*.spec.*\" -o -name \"test_*.py\" -o -name \"*_test.py\" -o -name \"*_spec.rb\" -o -name \"*Test.java\" \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" -not -path \"*/vendor/*\" -not -path \"*/target/*\" 2>/dev/null | wc -l | tr -d ' '); echo \"$out files matching common test patterns (0 may mean an ecosystem this probe misses \u2014 verify before reporting 'no tests')\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "0 files matching common test patterns (0 may mean an ecosystem this probe misses \u2014 verify before reporting 'no tests')\n", + "stdout_bytes": 121, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 12, + "command": "out=$(find . \\( -name \"*_test.go\" -o -name \"*.test.*\" -o -name \"*.spec.*\" -o -name \"test_*.py\" -o -name \"*_test.py\" -o -name \"*_spec.rb\" -o -name \"*Test.java\" \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" -not -path \"*/vendor/*\" -not -path \"*/target/*\" 2>/dev/null | wc -l | tr -d ' '); echo \"$out files matching common test patterns (0 may mean an ecosystem this probe misses \u2014 verify before reporting 'no tests')\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "0 files matching common test patterns (0 may mean an ecosystem this probe misses \u2014 verify before reporting 'no tests')\n", + "stdout_bytes": 121, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 12, + "command": "out=$(find . \\( -name \"*_test.go\" -o -name \"*.test.*\" -o -name \"*.spec.*\" -o -name \"test_*.py\" -o -name \"*_test.py\" -o -name \"*_spec.rb\" -o -name \"*Test.java\" \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" -not -path \"*/vendor/*\" -not -path \"*/target/*\" 2>/dev/null | wc -l | tr -d ' '); echo \"$out files matching common test patterns (0 may mean an ecosystem this probe misses \u2014 verify before reporting 'no tests')\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "15 files matching common test patterns (0 may mean an ecosystem this probe misses \u2014 verify before reporting 'no tests')\n", + "stdout_bytes": 122, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 12, + "command": "out=$(find . \\( -name \"*_test.go\" -o -name \"*.test.*\" -o -name \"*.spec.*\" -o -name \"test_*.py\" -o -name \"*_test.py\" -o -name \"*_spec.rb\" -o -name \"*Test.java\" \\) -not -path \"*/node_modules/*\" -not -path \"*/.git/*\" -not -path \"*/vendor/*\" -not -path \"*/target/*\" 2>/dev/null | wc -l | tr -d ' '); echo \"$out files matching common test patterns (0 may mean an ecosystem this probe misses \u2014 verify before reporting 'no tests')\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "15 files matching common test patterns (0 may mean an ecosystem this probe misses \u2014 verify before reporting 'no tests')\n", + "stdout_bytes": 122, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 13, + "command": "out=$(ls .github/workflows/ .gitlab-ci.yml .circleci/config.yml Jenkinsfile 2>/dev/null); echo \"${out:-none found}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": ".github/workflows/:\nvalidate.yml\n", + "stdout_bytes": 33, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 13, + "command": "out=$(ls .github/workflows/ .gitlab-ci.yml .circleci/config.yml Jenkinsfile 2>/dev/null); echo \"${out:-none found}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": ".github/workflows/:\nvalidate.yml\n", + "stdout_bytes": 33, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 13, + "command": "out=$(ls .github/workflows/ .gitlab-ci.yml .circleci/config.yml Jenkinsfile 2>/dev/null); echo \"${out:-none found}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 13, + "command": "out=$(ls .github/workflows/ .gitlab-ci.yml .circleci/config.yml Jenkinsfile 2>/dev/null); echo \"${out:-none found}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 13, + "command": "out=$(ls .github/workflows/ .gitlab-ci.yml .circleci/config.yml Jenkinsfile 2>/dev/null); echo \"${out:-none found}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": ".github/workflows/:\nci.yml\n", + "stdout_bytes": 27, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 13, + "command": "out=$(ls .github/workflows/ .gitlab-ci.yml .circleci/config.yml Jenkinsfile 2>/dev/null); echo \"${out:-none found}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": ".github/workflows/:\nci.yml\n", + "stdout_bytes": 27, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 14, + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 14, + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 14, + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 14, + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 14, + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "package.json\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 14, + "command": "out=$(ls Taskfile.yml Makefile justfile 2>/dev/null; grep -l '\"scripts\"' package.json 2>/dev/null); echo \"${out:-none}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "package.json\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 15, + "command": "out=$(ls codecov.yml .codecov.yml .coveragerc 2>/dev/null; grep -ril \"coverage\" .github/workflows/ 2>/dev/null | head -3); echo \"${out:-none found}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 15, + "command": "out=$(ls codecov.yml .codecov.yml .coveragerc 2>/dev/null; grep -ril \"coverage\" .github/workflows/ 2>/dev/null | head -3); echo \"${out:-none found}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 15, + "command": "out=$(ls codecov.yml .codecov.yml .coveragerc 2>/dev/null; grep -ril \"coverage\" .github/workflows/ 2>/dev/null | head -3); echo \"${out:-none found}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 15, + "command": "out=$(ls codecov.yml .codecov.yml .coveragerc 2>/dev/null; grep -ril \"coverage\" .github/workflows/ 2>/dev/null | head -3); echo \"${out:-none found}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 15, + "command": "out=$(ls codecov.yml .codecov.yml .coveragerc 2>/dev/null; grep -ril \"coverage\" .github/workflows/ 2>/dev/null | head -3); echo \"${out:-none found}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 15, + "command": "out=$(ls codecov.yml .codecov.yml .coveragerc 2>/dev/null; grep -ril \"coverage\" .github/workflows/ 2>/dev/null | head -3); echo \"${out:-none found}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none found\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 16, + "command": "out=$(grep -ril \"test\" CLAUDE.md CONTRIBUTING.md docs/adr/ docs/decisions/ .claude/ 2>/dev/null | head -5); echo \"${out:-none \u2014 no written testing conventions (itself a finding)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": ".claude/settings.local.json\n", + "stdout_bytes": 28, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 16, + "command": "out=$(grep -ril \"test\" CLAUDE.md CONTRIBUTING.md docs/adr/ docs/decisions/ .claude/ 2>/dev/null | head -5); echo \"${out:-none \u2014 no written testing conventions (itself a finding)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": ".claude/settings.local.json\n", + "stdout_bytes": 28, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 16, + "command": "out=$(grep -ril \"test\" CLAUDE.md CONTRIBUTING.md docs/adr/ docs/decisions/ .claude/ 2>/dev/null | head -5); echo \"${out:-none \u2014 no written testing conventions (itself a finding)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none \u2014 no written testing conventions (itself a finding)\n", + "stdout_bytes": 59, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 16, + "command": "out=$(grep -ril \"test\" CLAUDE.md CONTRIBUTING.md docs/adr/ docs/decisions/ .claude/ 2>/dev/null | head -5); echo \"${out:-none \u2014 no written testing conventions (itself a finding)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none \u2014 no written testing conventions (itself a finding)\n", + "stdout_bytes": 59, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 16, + "command": "out=$(grep -ril \"test\" CLAUDE.md CONTRIBUTING.md docs/adr/ docs/decisions/ .claude/ 2>/dev/null | head -5); echo \"${out:-none \u2014 no written testing conventions (itself a finding)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "CLAUDE.md\ndocs/adr/002-append-only-signals.md\ndocs/adr/004-public-shell-private-config.md\ndocs/adr/005-signal-latest-pointer.md\n.claude/settings.local.json\n", + "stdout_bytes": 156, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-audit/SKILL.md", + "line": 16, + "command": "out=$(grep -ril \"test\" CLAUDE.md CONTRIBUTING.md docs/adr/ docs/decisions/ .claude/ 2>/dev/null | head -5); echo \"${out:-none \u2014 no written testing conventions (itself a finding)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "CLAUDE.md\ndocs/adr/002-append-only-signals.md\ndocs/adr/004-public-shell-private-config.md\ndocs/adr/005-signal-latest-pointer.md\n.claude/settings.local.json\n", + "stdout_bytes": 156, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 11, + "command": "(grep -q '\"vitest\"' package.json 2>/dev/null && echo \"vitest\") || (grep -q '\"jest\"' package.json 2>/dev/null && echo \"jest\") || echo \"unknown\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "unknown\n", + "stdout_bytes": 8, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 11, + "command": "(grep -q '\"vitest\"' package.json 2>/dev/null && echo \"vitest\") || (grep -q '\"jest\"' package.json 2>/dev/null && echo \"jest\") || echo \"unknown\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "unknown\n", + "stdout_bytes": 8, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 11, + "command": "(grep -q '\"vitest\"' package.json 2>/dev/null && echo \"vitest\") || (grep -q '\"jest\"' package.json 2>/dev/null && echo \"jest\") || echo \"unknown\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "unknown\n", + "stdout_bytes": 8, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 11, + "command": "(grep -q '\"vitest\"' package.json 2>/dev/null && echo \"vitest\") || (grep -q '\"jest\"' package.json 2>/dev/null && echo \"jest\") || echo \"unknown\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "unknown\n", + "stdout_bytes": 8, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 11, + "command": "(grep -q '\"vitest\"' package.json 2>/dev/null && echo \"vitest\") || (grep -q '\"jest\"' package.json 2>/dev/null && echo \"jest\") || echo \"unknown\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "vitest\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 11, + "command": "(grep -q '\"vitest\"' package.json 2>/dev/null && echo \"vitest\") || (grep -q '\"jest\"' package.json 2>/dev/null && echo \"jest\") || echo \"unknown\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "vitest\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find src \\( -name \"*.test.ts\" -o -name \"*.test.tsx\" -o -name \"*.spec.ts\" -o -name \"*.spec.tsx\" \\) 2>/dev/null | head -8); echo \"${out:-no tests found}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no tests found\n", + "stdout_bytes": 15, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find src \\( -name \"*.test.ts\" -o -name \"*.test.tsx\" -o -name \"*.spec.ts\" -o -name \"*.spec.tsx\" \\) 2>/dev/null | head -8); echo \"${out:-no tests found}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no tests found\n", + "stdout_bytes": 15, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find src \\( -name \"*.test.ts\" -o -name \"*.test.tsx\" -o -name \"*.spec.ts\" -o -name \"*.spec.tsx\" \\) 2>/dev/null | head -8); echo \"${out:-no tests found}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no tests found\n", + "stdout_bytes": 15, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find src \\( -name \"*.test.ts\" -o -name \"*.test.tsx\" -o -name \"*.spec.ts\" -o -name \"*.spec.tsx\" \\) 2>/dev/null | head -8); echo \"${out:-no tests found}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no tests found\n", + "stdout_bytes": 15, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find src \\( -name \"*.test.ts\" -o -name \"*.test.tsx\" -o -name \"*.spec.ts\" -o -name \"*.spec.tsx\" \\) 2>/dev/null | head -8); echo \"${out:-no tests found}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no tests found\n", + "stdout_bytes": 15, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find src \\( -name \"*.test.ts\" -o -name \"*.test.tsx\" -o -name \"*.spec.ts\" -o -name \"*.spec.tsx\" \\) 2>/dev/null | head -8); echo \"${out:-no tests found}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no tests found\n", + "stdout_bytes": 15, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 13, + "command": "out=$(ls 2>/dev/null | grep -E '^(vitest|vite|jest)\\.config\\.' | head -3); echo \"${out:-no config found}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no config found\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 13, + "command": "out=$(ls 2>/dev/null | grep -E '^(vitest|vite|jest)\\.config\\.' | head -3); echo \"${out:-no config found}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no config found\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 13, + "command": "out=$(ls 2>/dev/null | grep -E '^(vitest|vite|jest)\\.config\\.' | head -3); echo \"${out:-no config found}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no config found\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 13, + "command": "out=$(ls 2>/dev/null | grep -E '^(vitest|vite|jest)\\.config\\.' | head -3); echo \"${out:-no config found}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no config found\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 13, + "command": "out=$(ls 2>/dev/null | grep -E '^(vitest|vite|jest)\\.config\\.' | head -3); echo \"${out:-no config found}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "vitest.config.ts\n", + "stdout_bytes": 17, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 13, + "command": "out=$(ls 2>/dev/null | grep -E '^(vitest|vite|jest)\\.config\\.' | head -3); echo \"${out:-no config found}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "vitest.config.ts\n", + "stdout_bytes": 17, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 14, + "command": "out=$(ls e2e 2>/dev/null | grep '\\.spec\\.ts$' | head -5); echo \"${out:-no e2e tests}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no e2e tests\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 14, + "command": "out=$(ls e2e 2>/dev/null | grep '\\.spec\\.ts$' | head -5); echo \"${out:-no e2e tests}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no e2e tests\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 14, + "command": "out=$(ls e2e 2>/dev/null | grep '\\.spec\\.ts$' | head -5); echo \"${out:-no e2e tests}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no e2e tests\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 14, + "command": "out=$(ls e2e 2>/dev/null | grep '\\.spec\\.ts$' | head -5); echo \"${out:-no e2e tests}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no e2e tests\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 14, + "command": "out=$(ls e2e 2>/dev/null | grep '\\.spec\\.ts$' | head -5); echo \"${out:-no e2e tests}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no e2e tests\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 14, + "command": "out=$(ls e2e 2>/dev/null | grep '\\.spec\\.ts$' | head -5); echo \"${out:-no e2e tests}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no e2e tests\n", + "stdout_bytes": 13, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 15, + "command": "out=$(find src -type d -name \"__tests__\" 2>/dev/null | head -3); echo \"${out:-no __tests__ dirs found}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no __tests__ dirs found\n", + "stdout_bytes": 24, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 15, + "command": "out=$(find src -type d -name \"__tests__\" 2>/dev/null | head -3); echo \"${out:-no __tests__ dirs found}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no __tests__ dirs found\n", + "stdout_bytes": 24, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 15, + "command": "out=$(find src -type d -name \"__tests__\" 2>/dev/null | head -3); echo \"${out:-no __tests__ dirs found}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no __tests__ dirs found\n", + "stdout_bytes": 24, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 15, + "command": "out=$(find src -type d -name \"__tests__\" 2>/dev/null | head -3); echo \"${out:-no __tests__ dirs found}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no __tests__ dirs found\n", + "stdout_bytes": 24, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 15, + "command": "out=$(find src -type d -name \"__tests__\" 2>/dev/null | head -3); echo \"${out:-no __tests__ dirs found}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no __tests__ dirs found\n", + "stdout_bytes": 24, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/test-scaffold/SKILL.md", + "line": 15, + "command": "out=$(find src -type d -name \"__tests__\" 2>/dev/null | head -3); echo \"${out:-no __tests__ dirs found}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/ops", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no __tests__ dirs found\n", + "stdout_bytes": 24, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 11, + "command": "git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "main\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 11, + "command": "git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "main\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 11, + "command": "git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "develop\n", + "stdout_bytes": 8, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 11, + "command": "git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "develop\n", + "stdout_bytes": 8, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 11, + "command": "git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "master\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 11, + "command": "git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "master\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 14, + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out=$(git log \"$BASE\"...HEAD --oneline 2>/dev/null); echo \"${out:-(no commits diverged from $BASE)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no commits diverged from main)\n", + "stdout_bytes": 32, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 14, + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out=$(git log \"$BASE\"...HEAD --oneline 2>/dev/null); echo \"${out:-(no commits diverged from $BASE)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no commits diverged from main)\n", + "stdout_bytes": 32, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 14, + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out=$(git log \"$BASE\"...HEAD --oneline 2>/dev/null); echo \"${out:-(no commits diverged from $BASE)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no commits diverged from develop)\n", + "stdout_bytes": 35, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 14, + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out=$(git log \"$BASE\"...HEAD --oneline 2>/dev/null); echo \"${out:-(no commits diverged from $BASE)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no commits diverged from develop)\n", + "stdout_bytes": 35, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 14, + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out=$(git log \"$BASE\"...HEAD --oneline 2>/dev/null); echo \"${out:-(no commits diverged from $BASE)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no commits diverged from master)\n", + "stdout_bytes": 34, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 14, + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out=$(git log \"$BASE\"...HEAD --oneline 2>/dev/null); echo \"${out:-(no commits diverged from $BASE)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no commits diverged from master)\n", + "stdout_bytes": 34, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 17, + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out=$(git diff \"$BASE\"...HEAD --stat 2>/dev/null); echo \"${out:-(no diff found)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 17, + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out=$(git diff \"$BASE\"...HEAD --stat 2>/dev/null); echo \"${out:-(no diff found)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 17, + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out=$(git diff \"$BASE\"...HEAD --stat 2>/dev/null); echo \"${out:-(no diff found)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 17, + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out=$(git diff \"$BASE\"...HEAD --stat 2>/dev/null); echo \"${out:-(no diff found)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 17, + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out=$(git diff \"$BASE\"...HEAD --stat 2>/dev/null); echo \"${out:-(no diff found)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 17, + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); out=$(git diff \"$BASE\"...HEAD --stat 2>/dev/null); echo \"${out:-(no diff found)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 20, + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); d=$(git diff \"$BASE\"...HEAD 2>/dev/null); if [ -z \"$d\" ]; then echo \"(no diff found)\"; elif [ ${#d} -gt 20000 ]; then printf '%.20000s' \"$d\"; printf '\\n[diff truncated at 20k chars - run git diff \"%s\"...HEAD for the rest]\\n' \"$BASE\"; else printf '%s\\n' \"$d\"; fi", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 20, + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); d=$(git diff \"$BASE\"...HEAD 2>/dev/null); if [ -z \"$d\" ]; then echo \"(no diff found)\"; elif [ ${#d} -gt 20000 ]; then printf '%.20000s' \"$d\"; printf '\\n[diff truncated at 20k chars - run git diff \"%s\"...HEAD for the rest]\\n' \"$BASE\"; else printf '%s\\n' \"$d\"; fi", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 20, + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); d=$(git diff \"$BASE\"...HEAD 2>/dev/null); if [ -z \"$d\" ]; then echo \"(no diff found)\"; elif [ ${#d} -gt 20000 ]; then printf '%.20000s' \"$d\"; printf '\\n[diff truncated at 20k chars - run git diff \"%s\"...HEAD for the rest]\\n' \"$BASE\"; else printf '%s\\n' \"$d\"; fi", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 20, + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); d=$(git diff \"$BASE\"...HEAD 2>/dev/null); if [ -z \"$d\" ]; then echo \"(no diff found)\"; elif [ ${#d} -gt 20000 ]; then printf '%.20000s' \"$d\"; printf '\\n[diff truncated at 20k chars - run git diff \"%s\"...HEAD for the rest]\\n' \"$BASE\"; else printf '%s\\n' \"$d\"; fi", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 20, + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); d=$(git diff \"$BASE\"...HEAD 2>/dev/null); if [ -z \"$d\" ]; then echo \"(no diff found)\"; elif [ ${#d} -gt 20000 ]; then printf '%.20000s' \"$d\"; printf '\\n[diff truncated at 20k chars - run git diff \"%s\"...HEAD for the rest]\\n' \"$BASE\"; else printf '%s\\n' \"$d\"; fi", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 20, + "command": "BASE=$(git rev-parse -q --verify main >/dev/null 2>&1 && echo main || { git rev-parse -q --verify master >/dev/null 2>&1 && echo master || echo develop; }); d=$(git diff \"$BASE\"...HEAD 2>/dev/null); if [ -z \"$d\" ]; then echo \"(no diff found)\"; elif [ ${#d} -gt 20000 ]; then printf '%.20000s' \"$d\"; printf '\\n[diff truncated at 20k chars - run git diff \"%s\"...HEAD for the rest]\\n' \"$BASE\"; else printf '%s\\n' \"$d\"; fi", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "(no diff found)\n", + "stdout_bytes": 16, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 22, + "command": "out=$(ls .github/PULL_REQUEST_TEMPLATE.md .github/pull_request_template.md 2>/dev/null | head -1); echo \"${out:-none \u2014 use the default format below}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none \u2014 use the default format below\n", + "stdout_bytes": 38, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 22, + "command": "out=$(ls .github/PULL_REQUEST_TEMPLATE.md .github/pull_request_template.md 2>/dev/null | head -1); echo \"${out:-none \u2014 use the default format below}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none \u2014 use the default format below\n", + "stdout_bytes": 38, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 22, + "command": "out=$(ls .github/PULL_REQUEST_TEMPLATE.md .github/pull_request_template.md 2>/dev/null | head -1); echo \"${out:-none \u2014 use the default format below}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none \u2014 use the default format below\n", + "stdout_bytes": 38, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 22, + "command": "out=$(ls .github/PULL_REQUEST_TEMPLATE.md .github/pull_request_template.md 2>/dev/null | head -1); echo \"${out:-none \u2014 use the default format below}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none \u2014 use the default format below\n", + "stdout_bytes": 38, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 22, + "command": "out=$(ls .github/PULL_REQUEST_TEMPLATE.md .github/pull_request_template.md 2>/dev/null | head -1); echo \"${out:-none \u2014 use the default format below}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none \u2014 use the default format below\n", + "stdout_bytes": 38, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/go-pr-description/SKILL.md", + "line": 22, + "command": "out=$(ls .github/PULL_REQUEST_TEMPLATE.md .github/pull_request_template.md 2>/dev/null | head -1); echo \"${out:-none \u2014 use the default format below}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none \u2014 use the default format below\n", + "stdout_bytes": 38, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 11, + "command": "out=$(grep -Eo \"^\\s+(test:performance|test:binary-size|test:asset-budgets):\" Taskfile.yml 2>/dev/null | sed -E \"s/^[[:space:]]+//; s/:$//\" | tr \"\\n\" \" \"); echo \"${out:-no perf budget tasks in Taskfile.yml \u2014 this repo does not carry the starter budget tooling; report that and stop (the universal perf-audit skill is the alternative)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no perf budget tasks in Taskfile.yml \u2014 this repo does not carry the starter budget tooling; report that and stop (the universal perf-audit skill is the alternative)\n", + "stdout_bytes": 167, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 11, + "command": "out=$(grep -Eo \"^\\s+(test:performance|test:binary-size|test:asset-budgets):\" Taskfile.yml 2>/dev/null | sed -E \"s/^[[:space:]]+//; s/:$//\" | tr \"\\n\" \" \"); echo \"${out:-no perf budget tasks in Taskfile.yml \u2014 this repo does not carry the starter budget tooling; report that and stop (the universal perf-audit skill is the alternative)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no perf budget tasks in Taskfile.yml \u2014 this repo does not carry the starter budget tooling; report that and stop (the universal perf-audit skill is the alternative)\n", + "stdout_bytes": 167, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 11, + "command": "out=$(grep -Eo \"^\\s+(test:performance|test:binary-size|test:asset-budgets):\" Taskfile.yml 2>/dev/null | sed -E \"s/^[[:space:]]+//; s/:$//\" | tr \"\\n\" \" \"); echo \"${out:-no perf budget tasks in Taskfile.yml \u2014 this repo does not carry the starter budget tooling; report that and stop (the universal perf-audit skill is the alternative)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no perf budget tasks in Taskfile.yml \u2014 this repo does not carry the starter budget tooling; report that and stop (the universal perf-audit skill is the alternative)\n", + "stdout_bytes": 167, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 11, + "command": "out=$(grep -Eo \"^\\s+(test:performance|test:binary-size|test:asset-budgets):\" Taskfile.yml 2>/dev/null | sed -E \"s/^[[:space:]]+//; s/:$//\" | tr \"\\n\" \" \"); echo \"${out:-no perf budget tasks in Taskfile.yml \u2014 this repo does not carry the starter budget tooling; report that and stop (the universal perf-audit skill is the alternative)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no perf budget tasks in Taskfile.yml \u2014 this repo does not carry the starter budget tooling; report that and stop (the universal perf-audit skill is the alternative)\n", + "stdout_bytes": 167, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 11, + "command": "out=$(grep -Eo \"^\\s+(test:performance|test:binary-size|test:asset-budgets):\" Taskfile.yml 2>/dev/null | sed -E \"s/^[[:space:]]+//; s/:$//\" | tr \"\\n\" \" \"); echo \"${out:-no perf budget tasks in Taskfile.yml \u2014 this repo does not carry the starter budget tooling; report that and stop (the universal perf-audit skill is the alternative)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "test:performance test:binary-size test:asset-budgets \n", + "stdout_bytes": 54, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 11, + "command": "out=$(grep -Eo \"^\\s+(test:performance|test:binary-size|test:asset-budgets):\" Taskfile.yml 2>/dev/null | sed -E \"s/^[[:space:]]+//; s/:$//\" | tr \"\\n\" \" \"); echo \"${out:-no perf budget tasks in Taskfile.yml \u2014 this repo does not carry the starter budget tooling; report that and stop (the universal perf-audit skill is the alternative)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "test:performance test:binary-size test:asset-budgets \n", + "stdout_bytes": 54, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 12, + "command": "out=$(find internal/performance -name \"*.go\" 2>/dev/null | head -5); echo \"${out:-no internal/performance package \u2014 the budget constants live elsewhere or are absent}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no internal/performance package \u2014 the budget constants live elsewhere or are absent\n", + "stdout_bytes": 86, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 12, + "command": "out=$(find internal/performance -name \"*.go\" 2>/dev/null | head -5); echo \"${out:-no internal/performance package \u2014 the budget constants live elsewhere or are absent}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no internal/performance package \u2014 the budget constants live elsewhere or are absent\n", + "stdout_bytes": 86, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 12, + "command": "out=$(find internal/performance -name \"*.go\" 2>/dev/null | head -5); echo \"${out:-no internal/performance package \u2014 the budget constants live elsewhere or are absent}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no internal/performance package \u2014 the budget constants live elsewhere or are absent\n", + "stdout_bytes": 86, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 12, + "command": "out=$(find internal/performance -name \"*.go\" 2>/dev/null | head -5); echo \"${out:-no internal/performance package \u2014 the budget constants live elsewhere or are absent}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no internal/performance package \u2014 the budget constants live elsewhere or are absent\n", + "stdout_bytes": 86, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 12, + "command": "out=$(find internal/performance -name \"*.go\" 2>/dev/null | head -5); echo \"${out:-no internal/performance package \u2014 the budget constants live elsewhere or are absent}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "internal/performance/budgets_test.go\ninternal/performance/budgets.go\n", + "stdout_bytes": 69, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 12, + "command": "out=$(find internal/performance -name \"*.go\" 2>/dev/null | head -5); echo \"${out:-no internal/performance package \u2014 the budget constants live elsewhere or are absent}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "internal/performance/budgets_test.go\ninternal/performance/budgets.go\n", + "stdout_bytes": 69, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 13, + "command": "out=$(ls -l dist/app 2>/dev/null); echo \"${out:-no dist/app yet \u2014 a stripped build is required before the binary gate means anything}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no dist/app yet \u2014 a stripped build is required before the binary gate means anything\n", + "stdout_bytes": 87, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 13, + "command": "out=$(ls -l dist/app 2>/dev/null); echo \"${out:-no dist/app yet \u2014 a stripped build is required before the binary gate means anything}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no dist/app yet \u2014 a stripped build is required before the binary gate means anything\n", + "stdout_bytes": 87, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 13, + "command": "out=$(ls -l dist/app 2>/dev/null); echo \"${out:-no dist/app yet \u2014 a stripped build is required before the binary gate means anything}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no dist/app yet \u2014 a stripped build is required before the binary gate means anything\n", + "stdout_bytes": 87, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 13, + "command": "out=$(ls -l dist/app 2>/dev/null); echo \"${out:-no dist/app yet \u2014 a stripped build is required before the binary gate means anything}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no dist/app yet \u2014 a stripped build is required before the binary gate means anything\n", + "stdout_bytes": 87, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 13, + "command": "out=$(ls -l dist/app 2>/dev/null); echo \"${out:-no dist/app yet \u2014 a stripped build is required before the binary gate means anything}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "-rwxr-xr-x@ 1 chrispezza staff 14453394 Aug 26 13:48 dist/app\n", + "stdout_bytes": 64, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 13, + "command": "out=$(ls -l dist/app 2>/dev/null); echo \"${out:-no dist/app yet \u2014 a stripped build is required before the binary gate means anything}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "-rwxr-xr-x@ 1 chrispezza staff 14453394 Aug 26 13:48 dist/app\n", + "stdout_bytes": 64, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 14, + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "main\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 14, + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "main\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 14, + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "detached or not a git repo\n", + "stdout_bytes": 27, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 14, + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "detached or not a git repo\n", + "stdout_bytes": 27, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 14, + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "master\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/perf-budget-check/SKILL.md", + "line": 14, + "command": "b=$(git branch --show-current 2>/dev/null); echo \"${b:-detached or not a git repo}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "master\n", + "stdout_bytes": 7, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 11, + "command": "out=$(ls sqlc.yaml sqlc.yml sqlc.json 2>/dev/null | head -1); echo \"${out:-no sqlc config found \u2014 this repo does not use sqlc; hand-written SQL in handlers is a different pattern, stop and confirm}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no sqlc config found \u2014 this repo does not use sqlc; hand-written SQL in handlers is a different pattern, stop and confirm\n", + "stdout_bytes": 124, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 11, + "command": "out=$(ls sqlc.yaml sqlc.yml sqlc.json 2>/dev/null | head -1); echo \"${out:-no sqlc config found \u2014 this repo does not use sqlc; hand-written SQL in handlers is a different pattern, stop and confirm}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no sqlc config found \u2014 this repo does not use sqlc; hand-written SQL in handlers is a different pattern, stop and confirm\n", + "stdout_bytes": 124, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 11, + "command": "out=$(ls sqlc.yaml sqlc.yml sqlc.json 2>/dev/null | head -1); echo \"${out:-no sqlc config found \u2014 this repo does not use sqlc; hand-written SQL in handlers is a different pattern, stop and confirm}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no sqlc config found \u2014 this repo does not use sqlc; hand-written SQL in handlers is a different pattern, stop and confirm\n", + "stdout_bytes": 124, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 11, + "command": "out=$(ls sqlc.yaml sqlc.yml sqlc.json 2>/dev/null | head -1); echo \"${out:-no sqlc config found \u2014 this repo does not use sqlc; hand-written SQL in handlers is a different pattern, stop and confirm}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no sqlc config found \u2014 this repo does not use sqlc; hand-written SQL in handlers is a different pattern, stop and confirm\n", + "stdout_bytes": 124, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 11, + "command": "out=$(ls sqlc.yaml sqlc.yml sqlc.json 2>/dev/null | head -1); echo \"${out:-no sqlc config found \u2014 this repo does not use sqlc; hand-written SQL in handlers is a different pattern, stop and confirm}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "sqlc.yaml\n", + "stdout_bytes": 10, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 11, + "command": "out=$(ls sqlc.yaml sqlc.yml sqlc.json 2>/dev/null | head -1); echo \"${out:-no sqlc config found \u2014 this repo does not use sqlc; hand-written SQL in handlers is a different pattern, stop and confirm}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "sqlc.yaml\n", + "stdout_bytes": 10, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find sql/queries -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/queries/*.sql \u2014 read the sqlc config queries path before scaffolding}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no sql/queries/*.sql \u2014 read the sqlc config queries path before scaffolding\n", + "stdout_bytes": 78, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find sql/queries -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/queries/*.sql \u2014 read the sqlc config queries path before scaffolding}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no sql/queries/*.sql \u2014 read the sqlc config queries path before scaffolding\n", + "stdout_bytes": 78, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find sql/queries -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/queries/*.sql \u2014 read the sqlc config queries path before scaffolding}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no sql/queries/*.sql \u2014 read the sqlc config queries path before scaffolding\n", + "stdout_bytes": 78, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find sql/queries -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/queries/*.sql \u2014 read the sqlc config queries path before scaffolding}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no sql/queries/*.sql \u2014 read the sqlc config queries path before scaffolding\n", + "stdout_bytes": 78, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find sql/queries -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/queries/*.sql \u2014 read the sqlc config queries path before scaffolding}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "sql/queries/flashcards.sql\nsql/queries/organization_members.sql\nsql/queries/organizations.sql\nsql/queries/quiz.sql\nsql/queries/users.sql\n", + "stdout_bytes": 137, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find sql/queries -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/queries/*.sql \u2014 read the sqlc config queries path before scaffolding}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "sql/queries/flashcards.sql\nsql/queries/organization_members.sql\nsql/queries/organizations.sql\nsql/queries/quiz.sql\nsql/queries/users.sql\n", + "stdout_bytes": 137, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 13, + "command": "out=$(find sql/schema sql/migrations -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/schema or sql/migrations \u2014 locate the schema so column names are real}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no sql/schema or sql/migrations \u2014 locate the schema so column names are real\n", + "stdout_bytes": 79, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 13, + "command": "out=$(find sql/schema sql/migrations -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/schema or sql/migrations \u2014 locate the schema so column names are real}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no sql/schema or sql/migrations \u2014 locate the schema so column names are real\n", + "stdout_bytes": 79, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 13, + "command": "out=$(find sql/schema sql/migrations -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/schema or sql/migrations \u2014 locate the schema so column names are real}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no sql/schema or sql/migrations \u2014 locate the schema so column names are real\n", + "stdout_bytes": 79, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 13, + "command": "out=$(find sql/schema sql/migrations -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/schema or sql/migrations \u2014 locate the schema so column names are real}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no sql/schema or sql/migrations \u2014 locate the schema so column names are real\n", + "stdout_bytes": 79, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 13, + "command": "out=$(find sql/schema sql/migrations -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/schema or sql/migrations \u2014 locate the schema so column names are real}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "sql/schema/schema.sql\n", + "stdout_bytes": 22, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 13, + "command": "out=$(find sql/schema sql/migrations -name \"*.sql\" 2>/dev/null | sort | head -20); echo \"${out:-no sql/schema or sql/migrations \u2014 locate the schema so column names are real}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "sql/schema/schema.sql\n", + "stdout_bytes": 22, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 14, + "command": "out=$( { grep -Eq \"db:generate\" Taskfile.yml 2>/dev/null && echo \"task db:generate\"; } || { command -v sqlc >/dev/null 2>&1 && echo \"sqlc generate\"; } ); echo \"${out:-neither a db:generate task nor the sqlc CLI found \u2014 install sqlc or find the generate step}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "neither a db:generate task nor the sqlc CLI found \u2014 install sqlc or find the generate step\n", + "stdout_bytes": 93, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 14, + "command": "out=$( { grep -Eq \"db:generate\" Taskfile.yml 2>/dev/null && echo \"task db:generate\"; } || { command -v sqlc >/dev/null 2>&1 && echo \"sqlc generate\"; } ); echo \"${out:-neither a db:generate task nor the sqlc CLI found \u2014 install sqlc or find the generate step}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "neither a db:generate task nor the sqlc CLI found \u2014 install sqlc or find the generate step\n", + "stdout_bytes": 93, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 14, + "command": "out=$( { grep -Eq \"db:generate\" Taskfile.yml 2>/dev/null && echo \"task db:generate\"; } || { command -v sqlc >/dev/null 2>&1 && echo \"sqlc generate\"; } ); echo \"${out:-neither a db:generate task nor the sqlc CLI found \u2014 install sqlc or find the generate step}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "neither a db:generate task nor the sqlc CLI found \u2014 install sqlc or find the generate step\n", + "stdout_bytes": 93, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 14, + "command": "out=$( { grep -Eq \"db:generate\" Taskfile.yml 2>/dev/null && echo \"task db:generate\"; } || { command -v sqlc >/dev/null 2>&1 && echo \"sqlc generate\"; } ); echo \"${out:-neither a db:generate task nor the sqlc CLI found \u2014 install sqlc or find the generate step}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "neither a db:generate task nor the sqlc CLI found \u2014 install sqlc or find the generate step\n", + "stdout_bytes": 93, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 14, + "command": "out=$( { grep -Eq \"db:generate\" Taskfile.yml 2>/dev/null && echo \"task db:generate\"; } || { command -v sqlc >/dev/null 2>&1 && echo \"sqlc generate\"; } ); echo \"${out:-neither a db:generate task nor the sqlc CLI found \u2014 install sqlc or find the generate step}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "task db:generate\n", + "stdout_bytes": 17, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 14, + "command": "out=$( { grep -Eq \"db:generate\" Taskfile.yml 2>/dev/null && echo \"task db:generate\"; } || { command -v sqlc >/dev/null 2>&1 && echo \"sqlc generate\"; } ); echo \"${out:-neither a db:generate task nor the sqlc CLI found \u2014 install sqlc or find the generate step}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "task db:generate\n", + "stdout_bytes": 17, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 15, + "command": "out=$(find internal/repository -maxdepth 1 -name \"*.go\" 2>/dev/null | sort | head -20); echo \"${out:-no internal/repository \u2014 the generated querier may be used directly; check how existing code reaches the DB}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no internal/repository \u2014 the generated querier may be used directly; check how existing code reaches the DB\n", + "stdout_bytes": 110, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 15, + "command": "out=$(find internal/repository -maxdepth 1 -name \"*.go\" 2>/dev/null | sort | head -20); echo \"${out:-no internal/repository \u2014 the generated querier may be used directly; check how existing code reaches the DB}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no internal/repository \u2014 the generated querier may be used directly; check how existing code reaches the DB\n", + "stdout_bytes": 110, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 15, + "command": "out=$(find internal/repository -maxdepth 1 -name \"*.go\" 2>/dev/null | sort | head -20); echo \"${out:-no internal/repository \u2014 the generated querier may be used directly; check how existing code reaches the DB}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no internal/repository \u2014 the generated querier may be used directly; check how existing code reaches the DB\n", + "stdout_bytes": 110, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 15, + "command": "out=$(find internal/repository -maxdepth 1 -name \"*.go\" 2>/dev/null | sort | head -20); echo \"${out:-no internal/repository \u2014 the generated querier may be used directly; check how existing code reaches the DB}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no internal/repository \u2014 the generated querier may be used directly; check how existing code reaches the DB\n", + "stdout_bytes": 110, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 15, + "command": "out=$(find internal/repository -maxdepth 1 -name \"*.go\" 2>/dev/null | sort | head -20); echo \"${out:-no internal/repository \u2014 the generated querier may be used directly; check how existing code reaches the DB}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "internal/repository/errors.go\ninternal/repository/flashcard.go\ninternal/repository/organization.go\ninternal/repository/organization_member.go\ninternal/repository/quiz.go\ninternal/repository/user.go\n", + "stdout_bytes": 198, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/sqlc-query-scaffold/SKILL.md", + "line": 15, + "command": "out=$(find internal/repository -maxdepth 1 -name \"*.go\" 2>/dev/null | sort | head -20); echo \"${out:-no internal/repository \u2014 the generated querier may be used directly; check how existing code reaches the DB}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "internal/repository/errors.go\ninternal/repository/flashcard.go\ninternal/repository/organization.go\ninternal/repository/organization_member.go\ninternal/repository/quiz.go\ninternal/repository/user.go\n", + "stdout_bytes": 198, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find internal/view -type f -name \"*.templ\" 2>/dev/null | sort | head -40); echo \"${out:-no internal/view/*.templ found \u2014 this repo is not laid out like the go-performance-starter; confirm where templ views live before scaffolding}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no internal/view/*.templ found \u2014 this repo is not laid out like the go-performance-starter; confirm where templ views live before scaffolding\n", + "stdout_bytes": 144, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find internal/view -type f -name \"*.templ\" 2>/dev/null | sort | head -40); echo \"${out:-no internal/view/*.templ found \u2014 this repo is not laid out like the go-performance-starter; confirm where templ views live before scaffolding}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no internal/view/*.templ found \u2014 this repo is not laid out like the go-performance-starter; confirm where templ views live before scaffolding\n", + "stdout_bytes": 144, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find internal/view -type f -name \"*.templ\" 2>/dev/null | sort | head -40); echo \"${out:-no internal/view/*.templ found \u2014 this repo is not laid out like the go-performance-starter; confirm where templ views live before scaffolding}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no internal/view/*.templ found \u2014 this repo is not laid out like the go-performance-starter; confirm where templ views live before scaffolding\n", + "stdout_bytes": 144, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find internal/view -type f -name \"*.templ\" 2>/dev/null | sort | head -40); echo \"${out:-no internal/view/*.templ found \u2014 this repo is not laid out like the go-performance-starter; confirm where templ views live before scaffolding}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no internal/view/*.templ found \u2014 this repo is not laid out like the go-performance-starter; confirm where templ views live before scaffolding\n", + "stdout_bytes": 144, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find internal/view -type f -name \"*.templ\" 2>/dev/null | sort | head -40); echo \"${out:-no internal/view/*.templ found \u2014 this repo is not laid out like the go-performance-starter; confirm where templ views live before scaffolding}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "internal/view/components/accessibility.templ\ninternal/view/components/alert.templ\ninternal/view/components/brand.templ\ninternal/view/components/button.templ\ninternal/view/components/card.templ\ninternal/view/components/csrf.templ\ninternal/view/components/form.templ\ninternal/view/components/input.templ\ninternal/view/layouts/base.templ\ninternal/view/pages/auth.templ\ninternal/view/pages/dashboard.templ\ninternal/view/pages/flashcards.templ\ninternal/view/pages/home.templ\ninternal/view/pages/logout.templ\ninternal/view/pages/patterns.templ\ninternal/view/pages/privacy.templ\ninternal/view/pages/profile.templ\ninternal/view/pages/quiz.templ\ninternal/view/pages/recover.templ\ninternal/view/pages/terms.templ\ninternal/view/pages/upgrade.templ\ninternal/view/partials/auth_message.templ\ninternal/view/partials/dashboard_widgets.templ\ninternal/view/partials/empty_state.templ\ninternal/view/partials/first_run.templ\ninternal/view/partials/flashcard.templ\ninternal/view/partials/learn_teasers.templ\ninternal/view/partials/password_form.templ\ninternal/view/partials/patterns.templ\ninternal/view/partials/profile_form.templ\ninternal/view/partials/quiz_question.templ\ninternal/view/partials/quiz_result.templ\ninternal/view/partials/upgrade.templ\n", + "stdout_bytes": 1232, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "line": 12, + "command": "out=$(find internal/view -type f -name \"*.templ\" 2>/dev/null | sort | head -40); echo \"${out:-no internal/view/*.templ found \u2014 this repo is not laid out like the go-performance-starter; confirm where templ views live before scaffolding}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "internal/view/components/accessibility.templ\ninternal/view/components/alert.templ\ninternal/view/components/brand.templ\ninternal/view/components/button.templ\ninternal/view/components/card.templ\ninternal/view/components/csrf.templ\ninternal/view/components/form.templ\ninternal/view/components/input.templ\ninternal/view/layouts/base.templ\ninternal/view/pages/auth.templ\ninternal/view/pages/dashboard.templ\ninternal/view/pages/flashcards.templ\ninternal/view/pages/home.templ\ninternal/view/pages/logout.templ\ninternal/view/pages/patterns.templ\ninternal/view/pages/privacy.templ\ninternal/view/pages/profile.templ\ninternal/view/pages/quiz.templ\ninternal/view/pages/recover.templ\ninternal/view/pages/terms.templ\ninternal/view/pages/upgrade.templ\ninternal/view/partials/auth_message.templ\ninternal/view/partials/dashboard_widgets.templ\ninternal/view/partials/empty_state.templ\ninternal/view/partials/first_run.templ\ninternal/view/partials/flashcard.templ\ninternal/view/partials/learn_teasers.templ\ninternal/view/partials/password_form.templ\ninternal/view/partials/patterns.templ\ninternal/view/partials/profile_form.templ\ninternal/view/partials/quiz_question.templ\ninternal/view/partials/quiz_result.templ\ninternal/view/partials/upgrade.templ\n", + "stdout_bytes": 1232, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "line": 14, + "command": "out=$(ls internal/view/props.go internal/view/render.go 2>/dev/null); echo \"${out:-no internal/view/props.go or render.go \u2014 read the repo layout for the props/render pattern before scaffolding}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no internal/view/props.go or render.go \u2014 read the repo layout for the props/render pattern before scaffolding\n", + "stdout_bytes": 112, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "line": 14, + "command": "out=$(ls internal/view/props.go internal/view/render.go 2>/dev/null); echo \"${out:-no internal/view/props.go or render.go \u2014 read the repo layout for the props/render pattern before scaffolding}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no internal/view/props.go or render.go \u2014 read the repo layout for the props/render pattern before scaffolding\n", + "stdout_bytes": 112, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "line": 14, + "command": "out=$(ls internal/view/props.go internal/view/render.go 2>/dev/null); echo \"${out:-no internal/view/props.go or render.go \u2014 read the repo layout for the props/render pattern before scaffolding}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no internal/view/props.go or render.go \u2014 read the repo layout for the props/render pattern before scaffolding\n", + "stdout_bytes": 112, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "line": 14, + "command": "out=$(ls internal/view/props.go internal/view/render.go 2>/dev/null); echo \"${out:-no internal/view/props.go or render.go \u2014 read the repo layout for the props/render pattern before scaffolding}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no internal/view/props.go or render.go \u2014 read the repo layout for the props/render pattern before scaffolding\n", + "stdout_bytes": 112, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "line": 14, + "command": "out=$(ls internal/view/props.go internal/view/render.go 2>/dev/null); echo \"${out:-no internal/view/props.go or render.go \u2014 read the repo layout for the props/render pattern before scaffolding}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "internal/view/props.go\ninternal/view/render.go\n", + "stdout_bytes": 47, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "line": 14, + "command": "out=$(ls internal/view/props.go internal/view/render.go 2>/dev/null); echo \"${out:-no internal/view/props.go or render.go \u2014 read the repo layout for the props/render pattern before scaffolding}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "internal/view/props.go\ninternal/view/render.go\n", + "stdout_bytes": 47, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "line": 16, + "command": "out=$( { grep -Eq \"templ:generate\" Taskfile.yml 2>/dev/null && echo \"task templ:generate\"; } || { command -v templ >/dev/null 2>&1 && echo \"templ generate\"; } ); echo \"${out:-neither a templ:generate task nor the templ CLI found \u2014 install templ or find the generate step}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "neither a templ:generate task nor the templ CLI found \u2014 install templ or find the generate step\n", + "stdout_bytes": 98, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "line": 16, + "command": "out=$( { grep -Eq \"templ:generate\" Taskfile.yml 2>/dev/null && echo \"task templ:generate\"; } || { command -v templ >/dev/null 2>&1 && echo \"templ generate\"; } ); echo \"${out:-neither a templ:generate task nor the templ CLI found \u2014 install templ or find the generate step}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "neither a templ:generate task nor the templ CLI found \u2014 install templ or find the generate step\n", + "stdout_bytes": 98, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "line": 16, + "command": "out=$( { grep -Eq \"templ:generate\" Taskfile.yml 2>/dev/null && echo \"task templ:generate\"; } || { command -v templ >/dev/null 2>&1 && echo \"templ generate\"; } ); echo \"${out:-neither a templ:generate task nor the templ CLI found \u2014 install templ or find the generate step}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "neither a templ:generate task nor the templ CLI found \u2014 install templ or find the generate step\n", + "stdout_bytes": 98, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "line": 16, + "command": "out=$( { grep -Eq \"templ:generate\" Taskfile.yml 2>/dev/null && echo \"task templ:generate\"; } || { command -v templ >/dev/null 2>&1 && echo \"templ generate\"; } ); echo \"${out:-neither a templ:generate task nor the templ CLI found \u2014 install templ or find the generate step}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "neither a templ:generate task nor the templ CLI found \u2014 install templ or find the generate step\n", + "stdout_bytes": 98, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "line": 16, + "command": "out=$( { grep -Eq \"templ:generate\" Taskfile.yml 2>/dev/null && echo \"task templ:generate\"; } || { command -v templ >/dev/null 2>&1 && echo \"templ generate\"; } ); echo \"${out:-neither a templ:generate task nor the templ CLI found \u2014 install templ or find the generate step}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "task templ:generate\n", + "stdout_bytes": 20, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/templ-component-scaffold/SKILL.md", + "line": 16, + "command": "out=$( { grep -Eq \"templ:generate\" Taskfile.yml 2>/dev/null && echo \"task templ:generate\"; } || { command -v templ >/dev/null 2>&1 && echo \"templ generate\"; } ); echo \"${out:-neither a templ:generate task nor the templ CLI found \u2014 install templ or find the generate step}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "task templ:generate\n", + "stdout_bytes": 20, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 11, + "command": "out=$(sed -n \"s/^module //p\" go.mod 2>/dev/null | head -1); echo \"${out:-no go.mod found \u2014 is this a Go module? confirm before scaffolding}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no go.mod found \u2014 is this a Go module? confirm before scaffolding\n", + "stdout_bytes": 68, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 11, + "command": "out=$(sed -n \"s/^module //p\" go.mod 2>/dev/null | head -1); echo \"${out:-no go.mod found \u2014 is this a Go module? confirm before scaffolding}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no go.mod found \u2014 is this a Go module? confirm before scaffolding\n", + "stdout_bytes": 68, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 11, + "command": "out=$(sed -n \"s/^module //p\" go.mod 2>/dev/null | head -1); echo \"${out:-no go.mod found \u2014 is this a Go module? confirm before scaffolding}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no go.mod found \u2014 is this a Go module? confirm before scaffolding\n", + "stdout_bytes": 68, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 11, + "command": "out=$(sed -n \"s/^module //p\" go.mod 2>/dev/null | head -1); echo \"${out:-no go.mod found \u2014 is this a Go module? confirm before scaffolding}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no go.mod found \u2014 is this a Go module? confirm before scaffolding\n", + "stdout_bytes": 68, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 11, + "command": "out=$(sed -n \"s/^module //p\" go.mod 2>/dev/null | head -1); echo \"${out:-no go.mod found \u2014 is this a Go module? confirm before scaffolding}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "github.com/clownware/go-performance-starter\n", + "stdout_bytes": 44, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 11, + "command": "out=$(sed -n \"s/^module //p\" go.mod 2>/dev/null | head -1); echo \"${out:-no go.mod found \u2014 is this a Go module? confirm before scaffolding}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "github.com/clownware/go-performance-starter\n", + "stdout_bytes": 44, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 12, + "command": "out=$( { grep -Rqs \"github.com/stretchr/testify\" go.mod 2>/dev/null && echo \"testify present in go.mod (check the target package's existing tests for whether they actually use it)\"; } || echo \"stdlib testing (no testify in go.mod)\" ); echo \"${out}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "stdlib testing (no testify in go.mod)\n", + "stdout_bytes": 38, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 12, + "command": "out=$( { grep -Rqs \"github.com/stretchr/testify\" go.mod 2>/dev/null && echo \"testify present in go.mod (check the target package's existing tests for whether they actually use it)\"; } || echo \"stdlib testing (no testify in go.mod)\" ); echo \"${out}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "stdlib testing (no testify in go.mod)\n", + "stdout_bytes": 38, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 12, + "command": "out=$( { grep -Rqs \"github.com/stretchr/testify\" go.mod 2>/dev/null && echo \"testify present in go.mod (check the target package's existing tests for whether they actually use it)\"; } || echo \"stdlib testing (no testify in go.mod)\" ); echo \"${out}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "stdlib testing (no testify in go.mod)\n", + "stdout_bytes": 38, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 12, + "command": "out=$( { grep -Rqs \"github.com/stretchr/testify\" go.mod 2>/dev/null && echo \"testify present in go.mod (check the target package's existing tests for whether they actually use it)\"; } || echo \"stdlib testing (no testify in go.mod)\" ); echo \"${out}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "stdlib testing (no testify in go.mod)\n", + "stdout_bytes": 38, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 12, + "command": "out=$( { grep -Rqs \"github.com/stretchr/testify\" go.mod 2>/dev/null && echo \"testify present in go.mod (check the target package's existing tests for whether they actually use it)\"; } || echo \"stdlib testing (no testify in go.mod)\" ); echo \"${out}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "stdlib testing (no testify in go.mod)\n", + "stdout_bytes": 38, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 12, + "command": "out=$( { grep -Rqs \"github.com/stretchr/testify\" go.mod 2>/dev/null && echo \"testify present in go.mod (check the target package's existing tests for whether they actually use it)\"; } || echo \"stdlib testing (no testify in go.mod)\" ); echo \"${out}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "stdlib testing (no testify in go.mod)\n", + "stdout_bytes": 38, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 13, + "command": "out=$(find . -name \"*_test.go\" -not -path \"./vendor/*\" 2>/dev/null | head -8); echo \"${out:-no _test.go files yet \u2014 this will be the first}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no _test.go files yet \u2014 this will be the first\n", + "stdout_bytes": 49, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 13, + "command": "out=$(find . -name \"*_test.go\" -not -path \"./vendor/*\" 2>/dev/null | head -8); echo \"${out:-no _test.go files yet \u2014 this will be the first}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no _test.go files yet \u2014 this will be the first\n", + "stdout_bytes": 49, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 13, + "command": "out=$(find . -name \"*_test.go\" -not -path \"./vendor/*\" 2>/dev/null | head -8); echo \"${out:-no _test.go files yet \u2014 this will be the first}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no _test.go files yet \u2014 this will be the first\n", + "stdout_bytes": 49, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 13, + "command": "out=$(find . -name \"*_test.go\" -not -path \"./vendor/*\" 2>/dev/null | head -8); echo \"${out:-no _test.go files yet \u2014 this will be the first}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no _test.go files yet \u2014 this will be the first\n", + "stdout_bytes": 49, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 13, + "command": "out=$(find . -name \"*_test.go\" -not -path \"./vendor/*\" 2>/dev/null | head -8); echo \"${out:-no _test.go files yet \u2014 this will be the first}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "./cmd/api/main_test.go\n./internal/handler/auth_handlers_test.go\n./internal/handler/profile_handlers_test.go\n./internal/handler/upgrade_handlers_test.go\n./internal/handler/home_explainer_test.go\n./internal/handler/flashcard_handlers_test.go\n./internal/handler/health_handler_test.go\n./internal/handler/first_run_handlers_test.go\n", + "stdout_bytes": 328, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 13, + "command": "out=$(find . -name \"*_test.go\" -not -path \"./vendor/*\" 2>/dev/null | head -8); echo \"${out:-no _test.go files yet \u2014 this will be the first}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "./cmd/api/main_test.go\n./internal/handler/auth_handlers_test.go\n./internal/handler/profile_handlers_test.go\n./internal/handler/upgrade_handlers_test.go\n./internal/handler/home_explainer_test.go\n./internal/handler/flashcard_handlers_test.go\n./internal/handler/health_handler_test.go\n./internal/handler/first_run_handlers_test.go\n", + "stdout_bytes": 328, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 14, + "command": "out=$( { grep -Eq \"^\\s*test:\" Taskfile.yml 2>/dev/null && echo \"task test\"; } || echo \"go test ./...\" ); echo \"${out}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "go test ./...\n", + "stdout_bytes": 14, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 14, + "command": "out=$( { grep -Eq \"^\\s*test:\" Taskfile.yml 2>/dev/null && echo \"task test\"; } || echo \"go test ./...\" ); echo \"${out}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "go test ./...\n", + "stdout_bytes": 14, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 14, + "command": "out=$( { grep -Eq \"^\\s*test:\" Taskfile.yml 2>/dev/null && echo \"task test\"; } || echo \"go test ./...\" ); echo \"${out}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "go test ./...\n", + "stdout_bytes": 14, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 14, + "command": "out=$( { grep -Eq \"^\\s*test:\" Taskfile.yml 2>/dev/null && echo \"task test\"; } || echo \"go test ./...\" ); echo \"${out}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "go test ./...\n", + "stdout_bytes": 14, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 14, + "command": "out=$( { grep -Eq \"^\\s*test:\" Taskfile.yml 2>/dev/null && echo \"task test\"; } || echo \"go test ./...\" ); echo \"${out}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/bash", + "exit": 0, + "stdout": "task test\n", + "stdout_bytes": 10, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/go-tools/skills/test-scaffold/SKILL.md", + "line": 14, + "command": "out=$( { grep -Eq \"^\\s*test:\" Taskfile.yml 2>/dev/null && echo \"task test\"; } || echo \"go test ./...\" ); echo \"${out}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/clownware/go-performance-starter", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "task test\n", + "stdout_bytes": 10, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 11, + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo [a-z-]+( [^\\\"]*)?\" {} + 2>/dev/null | sort -u | head -10); echo \"${out:-no CI workflows found \u2014 fall back to the standard legs: cargo fmt --all -- --check; cargo clippy --all-targets -- -D warnings; cargo test}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no CI workflows found \u2014 fall back to the standard legs: cargo fmt --all -- --check; cargo clippy --all-targets -- -D warnings; cargo test\n", + "stdout_bytes": 140, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 11, + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo [a-z-]+( [^\\\"]*)?\" {} + 2>/dev/null | sort -u | head -10); echo \"${out:-no CI workflows found \u2014 fall back to the standard legs: cargo fmt --all -- --check; cargo clippy --all-targets -- -D warnings; cargo test}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no CI workflows found \u2014 fall back to the standard legs: cargo fmt --all -- --check; cargo clippy --all-targets -- -D warnings; cargo test\n", + "stdout_bytes": 140, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 11, + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo [a-z-]+( [^\\\"]*)?\" {} + 2>/dev/null | sort -u | head -10); echo \"${out:-no CI workflows found \u2014 fall back to the standard legs: cargo fmt --all -- --check; cargo clippy --all-targets -- -D warnings; cargo test}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no CI workflows found \u2014 fall back to the standard legs: cargo fmt --all -- --check; cargo clippy --all-targets -- -D warnings; cargo test\n", + "stdout_bytes": 140, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 11, + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo [a-z-]+( [^\\\"]*)?\" {} + 2>/dev/null | sort -u | head -10); echo \"${out:-no CI workflows found \u2014 fall back to the standard legs: cargo fmt --all -- --check; cargo clippy --all-targets -- -D warnings; cargo test}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no CI workflows found \u2014 fall back to the standard legs: cargo fmt --all -- --check; cargo clippy --all-targets -- -D warnings; cargo test\n", + "stdout_bytes": 140, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 11, + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo [a-z-]+( [^\\\"]*)?\" {} + 2>/dev/null | sort -u | head -10); echo \"${out:-no CI workflows found \u2014 fall back to the standard legs: cargo fmt --all -- --check; cargo clippy --all-targets -- -D warnings; cargo test}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/tunes/tunes_protocol", + "shell": "/bin/bash", + "exit": 0, + "stdout": "cargo bench -p tunes-core -- --warm-up-time 0.5 --measurement-time 1 --sample-size 10 \\\ncargo bench failure and report the leg green.\ncargo build -p tunes-core --target wasm32-unknown-unknown --no-default-features\ncargo clippy --all-targets -- -D warnings\ncargo fmt --all -- --check\ncargo install cargo-public-api --version 0.52.0 --locked\ncargo llvm-cov --workspace --lcov --output-path lcov.info\ncargo llvm-cov report --fail-under-lines 80\ncargo llvm-cov report --summary-only\ncargo mutants -p tunes-core --in-place --annotations github\n", + "stdout_bytes": 539, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 11, + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo [a-z-]+( [^\\\"]*)?\" {} + 2>/dev/null | sort -u | head -10); echo \"${out:-no CI workflows found \u2014 fall back to the standard legs: cargo fmt --all -- --check; cargo clippy --all-targets -- -D warnings; cargo test}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/tunes/tunes_protocol", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "cargo bench -p tunes-core -- --warm-up-time 0.5 --measurement-time 1 --sample-size 10 \\\ncargo bench failure and report the leg green.\ncargo build -p tunes-core --target wasm32-unknown-unknown --no-default-features\ncargo clippy --all-targets -- -D warnings\ncargo fmt --all -- --check\ncargo install cargo-public-api --version 0.52.0 --locked\ncargo llvm-cov --workspace --lcov --output-path lcov.info\ncargo llvm-cov report --fail-under-lines 80\ncargo llvm-cov report --summary-only\ncargo mutants -p tunes-core --in-place --annotations github\n", + "stdout_bytes": 539, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 12, + "command": "out=$(ls deny.toml 2>/dev/null); echo \"${out:-none \u2014 skip the cargo-deny leg (note its absence in the report)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none \u2014 skip the cargo-deny leg (note its absence in the report)\n", + "stdout_bytes": 66, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 12, + "command": "out=$(ls deny.toml 2>/dev/null); echo \"${out:-none \u2014 skip the cargo-deny leg (note its absence in the report)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none \u2014 skip the cargo-deny leg (note its absence in the report)\n", + "stdout_bytes": 66, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 12, + "command": "out=$(ls deny.toml 2>/dev/null); echo \"${out:-none \u2014 skip the cargo-deny leg (note its absence in the report)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none \u2014 skip the cargo-deny leg (note its absence in the report)\n", + "stdout_bytes": 66, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 12, + "command": "out=$(ls deny.toml 2>/dev/null); echo \"${out:-none \u2014 skip the cargo-deny leg (note its absence in the report)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none \u2014 skip the cargo-deny leg (note its absence in the report)\n", + "stdout_bytes": 66, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 12, + "command": "out=$(ls deny.toml 2>/dev/null); echo \"${out:-none \u2014 skip the cargo-deny leg (note its absence in the report)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/tunes/tunes_protocol", + "shell": "/bin/bash", + "exit": 0, + "stdout": "deny.toml\n", + "stdout_bytes": 10, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 12, + "command": "out=$(ls deny.toml 2>/dev/null); echo \"${out:-none \u2014 skip the cargo-deny leg (note its absence in the report)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/tunes/tunes_protocol", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "deny.toml\n", + "stdout_bytes": 10, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 13, + "command": "out=$(ls fuzz/fuzz_targets 2>/dev/null | head -5); echo \"${out:-none}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 13, + "command": "out=$(ls fuzz/fuzz_targets 2>/dev/null | head -5); echo \"${out:-none}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 13, + "command": "out=$(ls fuzz/fuzz_targets 2>/dev/null | head -5); echo \"${out:-none}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 13, + "command": "out=$(ls fuzz/fuzz_targets 2>/dev/null | head -5); echo \"${out:-none}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "none\n", + "stdout_bytes": 5, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 13, + "command": "out=$(ls fuzz/fuzz_targets 2>/dev/null | head -5); echo \"${out:-none}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/tunes/tunes_protocol", + "shell": "/bin/bash", + "exit": 0, + "stdout": "fuzz_cbor_decode.rs\nfuzz_graph_traversal.rs\nfuzz_missing_objects.rs\nfuzz_object_decode.rs\nfuzz_refupdate_decode.rs\n", + "stdout_bytes": 115, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 13, + "command": "out=$(ls fuzz/fuzz_targets 2>/dev/null | head -5); echo \"${out:-none}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/tunes/tunes_protocol", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "fuzz_cbor_decode.rs\nfuzz_graph_traversal.rs\nfuzz_missing_objects.rs\nfuzz_object_decode.rs\nfuzz_refupdate_decode.rs\n", + "stdout_bytes": 115, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 14, + "command": "out=$(command -v cargo >/dev/null 2>&1 && cargo --version 2>/dev/null); echo \"${out:-cargo not on PATH \u2014 report every gate as unrunnable; do not guess verdicts}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "cargo 1.96.0 (30a34c682 2026-05-25)\n", + "stdout_bytes": 36, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 14, + "command": "out=$(command -v cargo >/dev/null 2>&1 && cargo --version 2>/dev/null); echo \"${out:-cargo not on PATH \u2014 report every gate as unrunnable; do not guess verdicts}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "cargo 1.96.0 (30a34c682 2026-05-25)\n", + "stdout_bytes": 36, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 14, + "command": "out=$(command -v cargo >/dev/null 2>&1 && cargo --version 2>/dev/null); echo \"${out:-cargo not on PATH \u2014 report every gate as unrunnable; do not guess verdicts}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "cargo 1.96.0 (30a34c682 2026-05-25)\n", + "stdout_bytes": 36, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 14, + "command": "out=$(command -v cargo >/dev/null 2>&1 && cargo --version 2>/dev/null); echo \"${out:-cargo not on PATH \u2014 report every gate as unrunnable; do not guess verdicts}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "cargo 1.96.0 (30a34c682 2026-05-25)\n", + "stdout_bytes": 36, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 14, + "command": "out=$(command -v cargo >/dev/null 2>&1 && cargo --version 2>/dev/null); echo \"${out:-cargo not on PATH \u2014 report every gate as unrunnable; do not guess verdicts}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/tunes/tunes_protocol", + "shell": "/bin/bash", + "exit": 0, + "stdout": "cargo 1.96.0 (30a34c682 2026-05-25)\n", + "stdout_bytes": 36, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/gate-check/SKILL.md", + "line": 14, + "command": "out=$(command -v cargo >/dev/null 2>&1 && cargo --version 2>/dev/null); echo \"${out:-cargo not on PATH \u2014 report every gate as unrunnable; do not guess verdicts}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/tunes/tunes_protocol", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "cargo 1.96.0 (30a34c682 2026-05-25)\n", + "stdout_bytes": 36, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 11, + "command": "out=$(ls Cargo.toml 2>/dev/null); echo \"${out:-no Cargo.toml at root \u2014 is this a Rust project? confirm before scaffolding}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no Cargo.toml at root \u2014 is this a Rust project? confirm before scaffolding\n", + "stdout_bytes": 77, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 11, + "command": "out=$(ls Cargo.toml 2>/dev/null); echo \"${out:-no Cargo.toml at root \u2014 is this a Rust project? confirm before scaffolding}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no Cargo.toml at root \u2014 is this a Rust project? confirm before scaffolding\n", + "stdout_bytes": 77, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 11, + "command": "out=$(ls Cargo.toml 2>/dev/null); echo \"${out:-no Cargo.toml at root \u2014 is this a Rust project? confirm before scaffolding}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no Cargo.toml at root \u2014 is this a Rust project? confirm before scaffolding\n", + "stdout_bytes": 77, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 11, + "command": "out=$(ls Cargo.toml 2>/dev/null); echo \"${out:-no Cargo.toml at root \u2014 is this a Rust project? confirm before scaffolding}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no Cargo.toml at root \u2014 is this a Rust project? confirm before scaffolding\n", + "stdout_bytes": 77, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 11, + "command": "out=$(ls Cargo.toml 2>/dev/null); echo \"${out:-no Cargo.toml at root \u2014 is this a Rust project? confirm before scaffolding}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/tunes/tunes_protocol", + "shell": "/bin/bash", + "exit": 0, + "stdout": "Cargo.toml\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 11, + "command": "out=$(ls Cargo.toml 2>/dev/null); echo \"${out:-no Cargo.toml at root \u2014 is this a Rust project? confirm before scaffolding}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/tunes/tunes_protocol", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "Cargo.toml\n", + "stdout_bytes": 11, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 12, + "command": "out=$(grep -q \"^\\[workspace\\]\" Cargo.toml 2>/dev/null && echo \"workspace \u2014 scaffold inside the member crate that owns the target\" || grep -m1 \"^name *=\" Cargo.toml 2>/dev/null); echo \"${out:-single file or unknown \u2014 read the tree first}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "single file or unknown \u2014 read the tree first\n", + "stdout_bytes": 47, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 12, + "command": "out=$(grep -q \"^\\[workspace\\]\" Cargo.toml 2>/dev/null && echo \"workspace \u2014 scaffold inside the member crate that owns the target\" || grep -m1 \"^name *=\" Cargo.toml 2>/dev/null); echo \"${out:-single file or unknown \u2014 read the tree first}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "single file or unknown \u2014 read the tree first\n", + "stdout_bytes": 47, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 12, + "command": "out=$(grep -q \"^\\[workspace\\]\" Cargo.toml 2>/dev/null && echo \"workspace \u2014 scaffold inside the member crate that owns the target\" || grep -m1 \"^name *=\" Cargo.toml 2>/dev/null); echo \"${out:-single file or unknown \u2014 read the tree first}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "single file or unknown \u2014 read the tree first\n", + "stdout_bytes": 47, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 12, + "command": "out=$(grep -q \"^\\[workspace\\]\" Cargo.toml 2>/dev/null && echo \"workspace \u2014 scaffold inside the member crate that owns the target\" || grep -m1 \"^name *=\" Cargo.toml 2>/dev/null); echo \"${out:-single file or unknown \u2014 read the tree first}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "single file or unknown \u2014 read the tree first\n", + "stdout_bytes": 47, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 12, + "command": "out=$(grep -q \"^\\[workspace\\]\" Cargo.toml 2>/dev/null && echo \"workspace \u2014 scaffold inside the member crate that owns the target\" || grep -m1 \"^name *=\" Cargo.toml 2>/dev/null); echo \"${out:-single file or unknown \u2014 read the tree first}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/tunes/tunes_protocol", + "shell": "/bin/bash", + "exit": 0, + "stdout": "workspace \u2014 scaffold inside the member crate that owns the target\n", + "stdout_bytes": 68, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 12, + "command": "out=$(grep -q \"^\\[workspace\\]\" Cargo.toml 2>/dev/null && echo \"workspace \u2014 scaffold inside the member crate that owns the target\" || grep -m1 \"^name *=\" Cargo.toml 2>/dev/null); echo \"${out:-single file or unknown \u2014 read the tree first}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/tunes/tunes_protocol", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "workspace \u2014 scaffold inside the member crate that owns the target\n", + "stdout_bytes": 68, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 13, + "command": "out=$(grep -rl \"#\\[cfg(test)\\]\" --include=\"*.rs\" crates src 2>/dev/null | head -6); echo \"${out:-no inline test modules yet \u2014 this will set the pattern}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no inline test modules yet \u2014 this will set the pattern\n", + "stdout_bytes": 57, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 13, + "command": "out=$(grep -rl \"#\\[cfg(test)\\]\" --include=\"*.rs\" crates src 2>/dev/null | head -6); echo \"${out:-no inline test modules yet \u2014 this will set the pattern}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no inline test modules yet \u2014 this will set the pattern\n", + "stdout_bytes": 57, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 13, + "command": "out=$(grep -rl \"#\\[cfg(test)\\]\" --include=\"*.rs\" crates src 2>/dev/null | head -6); echo \"${out:-no inline test modules yet \u2014 this will set the pattern}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "no inline test modules yet \u2014 this will set the pattern\n", + "stdout_bytes": 57, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 13, + "command": "out=$(grep -rl \"#\\[cfg(test)\\]\" --include=\"*.rs\" crates src 2>/dev/null | head -6); echo \"${out:-no inline test modules yet \u2014 this will set the pattern}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "no inline test modules yet \u2014 this will set the pattern\n", + "stdout_bytes": 57, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 13, + "command": "out=$(grep -rl \"#\\[cfg(test)\\]\" --include=\"*.rs\" crates src 2>/dev/null | head -6); echo \"${out:-no inline test modules yet \u2014 this will set the pattern}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/tunes/tunes_protocol", + "shell": "/bin/bash", + "exit": 0, + "stdout": "crates/tunes-core/src/did.rs\ncrates/tunes-core/src/graph.rs\ncrates/tunes-core/src/objects/commit.rs\ncrates/tunes-core/src/objects/manifest.rs\ncrates/tunes-core/src/objects/tree.rs\ncrates/tunes-core/src/objects/provenance.rs\n", + "stdout_bytes": 224, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 13, + "command": "out=$(grep -rl \"#\\[cfg(test)\\]\" --include=\"*.rs\" crates src 2>/dev/null | head -6); echo \"${out:-no inline test modules yet \u2014 this will set the pattern}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/tunes/tunes_protocol", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "crates/tunes-core/src/did.rs\ncrates/tunes-core/src/graph.rs\ncrates/tunes-core/src/objects/commit.rs\ncrates/tunes-core/src/objects/manifest.rs\ncrates/tunes-core/src/objects/tree.rs\ncrates/tunes-core/src/objects/provenance.rs\n", + "stdout_bytes": 224, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 14, + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo (test|nextest)[^\\\"]*\" {} + 2>/dev/null | sort -u | head -2); echo \"${out:-cargo test (no CI workflow found)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/bash", + "exit": 0, + "stdout": "cargo test (no CI workflow found)\n", + "stdout_bytes": 34, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 14, + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo (test|nextest)[^\\\"]*\" {} + 2>/dev/null | sort -u | head -2); echo \"${out:-cargo test (no CI workflow found)}\"", + "context": "marketplace", + "cwd": "/Users/chrispezza/Dev/clownware/plugins", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "cargo test (no CI workflow found)\n", + "stdout_bytes": 34, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 14, + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo (test|nextest)[^\\\"]*\" {} + 2>/dev/null | sort -u | head -2); echo \"${out:-cargo test (no CI workflow found)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/bash", + "exit": 0, + "stdout": "cargo test (no CI workflow found)\n", + "stdout_bytes": 34, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 14, + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo (test|nextest)[^\\\"]*\" {} + 2>/dev/null | sort -u | head -2); echo \"${out:-cargo test (no CI workflow found)}\"", + "context": "empty", + "cwd": "/private/tmp/skill-audit-20260905/empty", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "cargo test (no CI workflow found)\n", + "stdout_bytes": 34, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 14, + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo (test|nextest)[^\\\"]*\" {} + 2>/dev/null | sort -u | head -2); echo \"${out:-cargo test (no CI workflow found)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/tunes/tunes_protocol", + "shell": "/bin/bash", + "exit": 0, + "stdout": "cargo test --workspace\n", + "stdout_bytes": 23, + "stderr": "" + }, + { + "path": "/Users/chrispezza/Dev/clownware/plugins/plugins/rust-tools/skills/test-scaffold/SKILL.md", + "line": 14, + "command": "out=$(find .github/workflows -maxdepth 1 -name \"*.yml\" -exec grep -hoE \"cargo (test|nextest)[^\\\"]*\" {} + 2>/dev/null | sort -u | head -2); echo \"${out:-cargo test (no CI workflow found)}\"", + "context": "target", + "cwd": "/Users/chrispezza/Dev/tunes/tunes_protocol", + "shell": "/bin/zsh", + "exit": 0, + "stdout": "cargo test --workspace\n", + "stdout_bytes": 23, + "stderr": "" + } +] \ No newline at end of file diff --git a/docs/audits/2026-09-05/publication.json b/docs/audits/2026-09-05/publication.json new file mode 100644 index 0000000..fd21cae --- /dev/null +++ b/docs/audits/2026-09-05/publication.json @@ -0,0 +1,12 @@ +{ + "status": "accepted", + "published_at": 1788617732, + "endpoint": "https://ops.chris-d8c.workers.dev/ingest", + "report_sha256": "403b7cb1a0ec912222251468c4debf7534bff256e7f877e969ed9ddd65a339bb", + "response": { + "ok": true, + "entities": 39, + "signals": 195 + }, + "verification": "HTTP 202 and exact entity/signal counts acknowledged; dashboard readback requires authenticated UI." +} diff --git a/docs/audits/2026-09-05/reproductions.json b/docs/audits/2026-09-05/reproductions.json new file mode 100644 index 0000000..80691e5 --- /dev/null +++ b/docs/audits/2026-09-05/reproductions.json @@ -0,0 +1,32 @@ +{ + "cargo check --offline": { + "exit": 0, + "stderr": " Checking skill-audit-fixture v0.1.0 (/private/tmp/skill-audit-20260905/rust)\n Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.34s\n" + }, + "cargo test --offline --no-run": { + "exit": 101, + "stderr": " Compiling skill-audit-fixture v0.1.0 (/private/tmp/skill-audit-20260905/rust)\nerror[E0308]: mismatched types\n --> src/lib.rs:2:71\n |\n2 | #[cfg(test)] mod tests { #[test] #[ignore] fn sample() { let x: u32 = \"wrong\"; } }\n | --- ^^^^^^^ expected `u32`, found `&str`\n | |\n | expected due to this\n\nFor more information about this error, try `rustc --explain E0308`.\nerror: could not compile `skill-audit-fixture` (lib test) due to 1 previous error\n" + }, + "git commit --no-verify": { + "exit": 0, + "stdout": "{\"hookSpecificOutput\":{\"hookEventName\":\"PreToolUse\",\"permissionDecision\":\"deny\",\"permissionDecisionReason\":\"Blocked: git commit/push with --no-verify. This repo's hooks are the quality gate \u2014 fix what the hook rejects instead of bypassing it.\"}}\n" + }, + "/usr/bin/git commit --no-verify": { + "exit": 0, + "stdout": "" + }, + "env git commit --no-verify": { + "exit": 0, + "stdout": "" + }, + "release dry run": { + "before": "{\"version\":\"1.0.0\",\"userNote\":\"keep\"}\n", + "after": "{\"version\":\"1.0.0\"}\n", + "user_edit_preserved": false + }, + "astro surface probe": { + "exit": 0, + "stdout": "0 files (0 means no markup surface \u2014 say so and stop)\n", + "line": 11 + } +} \ No newline at end of file diff --git a/docs/audits/2026-09-05/structure.json b/docs/audits/2026-09-05/structure.json new file mode 100644 index 0000000..d2cee7f --- /dev/null +++ b/docs/audits/2026-09-05/structure.json @@ -0,0 +1,43 @@ +[ + { + "plugin": "clownware-astro-tools", + "version": "0.5.1", + "skill_count": 3, + "errors": [] + }, + { + "plugin": "clownware-code-tools", + "version": "0.15.2", + "skill_count": 17, + "errors": [ + { + "file": "/Users/chrispezza/Dev/clownware/plugins/plugins/code-tools/skills/githits-research/SKILL.md", + "error": "mapping values are not allowed here\n in \"\", line 3, column 479:\n ... on external code you cannot see: writing against a dependency A ... \n ^" + } + ] + }, + { + "plugin": "clownware-go-tools", + "version": "0.3.2", + "skill_count": 5, + "errors": [] + }, + { + "plugin": "pezza-design-system", + "version": "0.5.2", + "skill_count": 1, + "errors": [] + }, + { + "plugin": "clownware-rust-tools", + "version": "0.1.1", + "skill_count": 2, + "errors": [] + }, + { + "plugin": "product-dev", + "version": "0.5.0", + "skill_count": 5, + "errors": [] + } +] \ No newline at end of file diff --git a/plugins/astro-tools/.claude-plugin/plugin.json b/plugins/astro-tools/.claude-plugin/plugin.json index 88471d3..bef5edc 100644 --- a/plugins/astro-tools/.claude-plugin/plugin.json +++ b/plugins/astro-tools/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "clownware-astro-tools", "description": "Astro + Preact stack skills: component scaffolding, template-aware PR descriptions, and performance-budget gate checks, following astro-performance-starter conventions with fallbacks for other Astro projects. Also ships a format-on-edit hook that runs Biome on every file Claude edits in Biome-configured projects.", - "version": "0.5.1", + "version": "0.5.2", "license": "Apache-2.0", "author": { "name": "clownware" diff --git a/plugins/astro-tools/skills/component-scaffold/SKILL.md b/plugins/astro-tools/skills/component-scaffold/SKILL.md index aac6e32..1df4200 100644 --- a/plugins/astro-tools/skills/component-scaffold/SKILL.md +++ b/plugins/astro-tools/skills/component-scaffold/SKILL.md @@ -103,11 +103,18 @@ export default function ComponentName({ ...props }: Props) { ### 5. Apply project conventions -- **Design tokens:** Use semantic Tailwind classes — `text-foreground-primary`, `bg-background-secondary`, `border-border-primary`. Never hardcode colors. -- **Dark mode:** Handled automatically by token system. No manual `dark:` variants needed. +Read the target's styles, configuration, and one nearby component first. Follow +its existing styling system; do not add Tailwind or starter tokens to a project +that does not use them. + +- **Design tokens:** In starter projects, use their semantic Tailwind classes + (`text-foreground-primary`, `bg-background-secondary`, `border-border-primary`). + Elsewhere use the project's existing CSS, modules, utilities, or token API. +- **Dark mode:** Follow the target's theme mechanism; starter tokens handle it + automatically, while other projects may need explicit theme selectors. - **Accessibility:** Include `role`, `aria-*` attributes, and keyboard event handlers where applicable. Generate unique IDs for `aria-labelledby` relationships. -- **Motion:** Respect `prefers-reduced-motion` with `motion-reduce:` Tailwind variant. -- **Responsive:** Mobile-first with Tailwind breakpoints. +- **Motion:** Respect `prefers-reduced-motion` using the project's CSS or utilities. +- **Responsive:** Follow the project's breakpoints and layout conventions. ### 6. Output diff --git a/plugins/astro-tools/skills/perf-budget-check/SKILL.md b/plugins/astro-tools/skills/perf-budget-check/SKILL.md index cb03934..a76158e 100644 --- a/plugins/astro-tools/skills/perf-budget-check/SKILL.md +++ b/plugins/astro-tools/skills/perf-budget-check/SKILL.md @@ -26,10 +26,12 @@ repo: stop and point at `/perf-audit`. ### 1. Ensure the thing being measured exists -Size gates measure `dist/`. If `dist/` is missing or older than the newest source -change (`git log -1 --format=%ct -- src/` vs the dist mtime), build first — -`pnpm run build` — and say you did. Never measure a stale build silently; that is -how a passing report lies. +Size gates measure `dist/`. Run the repository's build command before the size +gates and say you did. A build may be reused only if the repository's own cache +or content fingerprint verifies all current build inputs, including uncommitted +source, configuration, public assets, and dependencies. Commit timestamps and +directory mtimes do not establish freshness. If a current build cannot be +produced or verified, report the size gates as not run rather than passing stale output. ### 2. Run the gates, capture everything diff --git a/plugins/code-tools/.claude-plugin/plugin.json b/plugins/code-tools/.claude-plugin/plugin.json index 1461c7d..597270b 100644 --- a/plugins/code-tools/.claude-plugin/plugin.json +++ b/plugins/code-tools/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "clownware-code-tools", "description": "Universal dev workflow skills: architecture/deployment-readiness auditing, security auditing, test-suite auditing, skill auditing, design-system auditing, accessibility auditing, dependency auditing, performance auditing, devops/CI-CD auditing, audit-fix application, plugin releasing, skill validation, ADR authoring, PR descriptions, root-cause debugging, test scaffolding, and GitHits OSS research conventions. Each skill probes the repo it runs in and degrades gracefully. Also ships a git guard hook: blocks --no-verify commits/pushes and secret-scans staged changes (gitleaks, with a pattern fallback) before every commit.", - "version": "0.15.2", + "version": "0.15.3", "license": "Apache-2.0", "author": { "name": "clownware" diff --git a/plugins/code-tools/hooks/git-guard.sh b/plugins/code-tools/hooks/git-guard.sh index ad8d91d..7caa7a2 100755 --- a/plugins/code-tools/hooks/git-guard.sh +++ b/plugins/code-tools/hooks/git-guard.sh @@ -3,8 +3,10 @@ # 1. git commit/push with --no-verify is denied — hooks are the contract. # 2. git commit scans staged changes for secrets first (gitleaks when # installed, high-confidence token patterns otherwise) and denies on a hit. -# Anything that isn't a git command, or any environment where the payload -# can't be parsed, is a silent allow — the guard must never break Bash. +# Best-effort convenience guard, not a shell security boundary. Recognizes +# direct git paths and simple env/command wrappers; aliases, substitutions, +# quoted executable paths and arbitrary shell programs are not interpreted. +# Keep repository/server gates authoritative. Unparseable payloads allow. set -uo pipefail payload=$(cat) @@ -34,7 +36,7 @@ print(json.dumps({"hookSpecificOutput":{"hookEventName":"PreToolUse","permission } is_git=false -printf '%s' "$cmd" | grep -qE '(^|[;&|(]|&&|\|\|)[[:space:]]*git[[:space:]]' && is_git=true +printf '%s' "$cmd" | grep -qE '(^|[;&|(]|&&|\|\|)[[:space:]]*((env[[:space:]]+(-i[[:space:]]+)?([A-Za-z_][A-Za-z0-9_]*=[^[:space:];&|]+[[:space:]]+)*)|(command[[:space:]]+))?([[:alnum:]_./-]+/)?git[[:space:]]' && is_git=true [ "$is_git" = true ] || exit 0 # Policy 1: never bypass the repo's own hooks. Catches --no-verify on diff --git a/plugins/code-tools/skills/a11y-audit/SKILL.md b/plugins/code-tools/skills/a11y-audit/SKILL.md index 3f90254..f022b49 100644 --- a/plugins/code-tools/skills/a11y-audit/SKILL.md +++ b/plugins/code-tools/skills/a11y-audit/SKILL.md @@ -8,9 +8,9 @@ Audit this repository's functional accessibility. Focus, if given: $ARGUMENTS ## Surface inventory (pre-fetched) -**Markup/component files:** !`out=$(find . \( -name "*.html" -o -name "*.jsx" -o -name "*.tsx" -o -name "*.vue" -o -name "*.svelte" \) -not -path "*/node_modules/*" -not -path "*/.git/*" 2>/dev/null | wc -l | tr -d ' '); echo "$out files (0 means no markup surface — say so and stop)"` +**Markup/component files:** !`out=$(find . \( -name "*.html" -o -name "*.jsx" -o -name "*.tsx" -o -name "*.vue" -o -name "*.svelte" -o -name "*.astro" -o -name "*.templ" \) -not -path "*/node_modules/*" -not -path "*/.git/*" 2>/dev/null | wc -l | tr -d ' '); echo "$out files (0 means no recognized markup — inspect the target layout before deciding there is no surface)"` **Framework hints:** !`out=$(grep -lE '"react"|"preact"|"vue"|"svelte"' package.json 2>/dev/null; find . -maxdepth 2 -name "*.jsx" -o -maxdepth 2 -name "*.vue" 2>/dev/null | head -1); echo "${out:-plain HTML or undetected — sweep both attribute spellings}"` -**Interactive-handler density:** !`out=$(grep -rlE 'onClick|onclick=|@click|on:click' --include='*.html' --include='*.jsx' --include='*.tsx' --include='*.vue' --include='*.svelte' . 2>/dev/null | grep -v node_modules | head -8); echo "${out:-none found}"` +**Interactive-handler density:** !`out=$(grep -rlE 'onClick|onclick=|@click|on:click' --include='*.html' --include='*.jsx' --include='*.tsx' --include='*.vue' --include='*.svelte' --include='*.astro' --include='*.templ' . 2>/dev/null | grep -v node_modules | head -8); echo "${out:-none found}"` ## Scope diff --git a/plugins/code-tools/skills/githits-research/SKILL.md b/plugins/code-tools/skills/githits-research/SKILL.md index 0565e9c..e1ae71f 100644 --- a/plugins/code-tools/skills/githits-research/SKILL.md +++ b/plugins/code-tools/skills/githits-research/SKILL.md @@ -1,6 +1,7 @@ --- name: githits-research -description: House conventions for evidence-grade OSS research with GitHits MCP. Use whenever a claim about external open-source code needs to be true — harness/library architecture surveys, "how does upstream X actually work", pattern-borrowing research, dependency upgrade or vulnerability evidence, or validating secondhand claims (blog posts, another AI's analysis) against real source. Also use DURING implementation when correctness depends on external code you cannot see: writing against a dependency API you are not certain of (or a version newer than training data), debugging an error that traces into a dependency, vetting a new dependency before adding it, or changing anything against a pinned upstream fork or submodule. Also use when ESTABLISHING conventions rather than following them: authoring a starter, template, design system, CI/quality-gate setup, or greenfield architecture, where "how do the best real-world projects do this" is the actual question. Complements the vendor githits-mcp skill (tool mechanics) with citation, provenance, and multi-repo fan-out rules. +description: >- + House conventions for evidence-grade OSS research with GitHits MCP. Use whenever a claim about external open-source code needs to be true — harness/library architecture surveys, "how does upstream X actually work", pattern-borrowing research, dependency upgrade or vulnerability evidence, or validating secondhand claims (blog posts, another AI's analysis) against real source. Also use DURING implementation when correctness depends on external code you cannot see: writing against a dependency API you are not certain of (or a version newer than training data), debugging an error that traces into a dependency, vetting a new dependency before adding it, or changing anything against a pinned upstream fork or submodule. Also use when ESTABLISHING conventions rather than following them: authoring a starter, template, design system, CI/quality-gate setup, or greenfield architecture, where "how do the best real-world projects do this" is the actual question. Complements the vendor githits-mcp skill (tool mechanics) with citation, provenance, and multi-repo fan-out rules. --- # GitHits research conventions diff --git a/plugins/code-tools/skills/plugin-release/SKILL.md b/plugins/code-tools/skills/plugin-release/SKILL.md index 537658d..535d480 100644 --- a/plugins/code-tools/skills/plugin-release/SKILL.md +++ b/plugins/code-tools/skills/plugin-release/SKILL.md @@ -1,6 +1,6 @@ --- name: plugin-release -description: "Cuts a release of an in-repo Claude Code plugin in a marketplace repository: semver bump in plugin.json, description/skill-table sync across marketplace.json and the README, JSON validation, and a conventional commit summarizing the delta since the last bump. Supports --dry-run (prints the diff, reverts, commits nothing). Use when asked to release a plugin, bump a plugin's version, cut a version, or ship a plugin update." +description: "Cuts a release of an in-repo Claude Code plugin in a marketplace repository: semver bump in plugin.json, description/skill-table sync across marketplace.json and the README, JSON validation, and a conventional commit summarizing the delta since the last bump. Supports --dry-run (previews changes in a temporary copy without changing the working tree or index). Use when asked to release a plugin, bump a plugin's version, cut a version, or ship a plugin update." allowed-tools: Bash, Read, Write, Edit, Glob, Grep --- @@ -32,8 +32,11 @@ release commit should contain the release and nothing else. summary's conventional type — `feat` → minor, `fix`/`docs`/`chore` → patch, anything marked breaking → major. If there is no summary and no bump type, derive the delta first (step 2) and propose a bump — do not guess silently. -- **Dry-run**: if $ARGUMENTS contains `--dry-run`, apply everything, show - `git diff`, then revert the files — no commit, clean tree afterward. +- **Dry-run**: if $ARGUMENTS contains `--dry-run`, snapshot the current contents of + only the release files into a temporary directory outside the repository. Make + a second copy for proposed edits and apply the bump and documentation sync + there. Compare the before/after copies to produce the proposed diff. Never + edit the working tree or index, including when either already contains changes. ### 2. Derive the delta since the last bump @@ -77,9 +80,11 @@ pattern (this repo uses `feat(): ; vX.Y.Z` for feature releases Do not push unless the user's instruction or session pattern says pushes are wanted; say which you did. -For `--dry-run`: print the full diff, then `git checkout -- ` and confirm the -tree is clean. The dry-run's value is the diff being exactly what the real run would -commit. +For `--dry-run`: print the diff between the temporary before/after copies, with +repository-relative filenames. Verify the original files and index are unchanged +from their pre-run state, then remove only the temporary directory created for +this preview. Never use Git restore/checkout/reset as preview cleanup. A dirty +working tree must remain dirty with exactly the same user changes. ## Rules diff --git a/plugins/code-tools/skills/skill-audit/SKILL.md b/plugins/code-tools/skills/skill-audit/SKILL.md index 4613efe..6181f76 100644 --- a/plugins/code-tools/skills/skill-audit/SKILL.md +++ b/plugins/code-tools/skills/skill-audit/SKILL.md @@ -21,13 +21,23 @@ Read every SKILL.md in full before reporting anything — findings about collisi For each skill check: - `name` present and matching its directory name -- `description` present (it is the only thing the triggering mechanism ever sees) -- `allowed-tools` scoped to what the body actually does: Write/Edit only if the skill writes files, Agent only if it fans out subagents. Over-scoping widens the blast radius of a misfire; under-scoping breaks the skill at runtime. +- `description` present, concise, and discriminating (discovery metadata varies by host) +- Parse the frontmatter as YAML before checking fields; a regex match does not + prove metadata will load. +- Interpret tool metadata according to the target host and version. In Claude + Code, `allowed-tools` grants approvals; it is not an exclusive tool list. + Review unnecessary grants separately from actual restrictions and host + permissions. Do not infer missing tools or broken execution solely from an + omitted grant; verify the effective tool surface when runtime access is available. - consistency across sibling skills (e.g. a `license` field on some but not others) ### 2. Descriptions and triggering -The description must carry both what the skill does and the concrete phrases that should trigger it — Claude undertriggers skills, so vague descriptions mean the skill never fires. Check each for: +The description should name the task and its boundaries. Check discovery with +positive and nearby negative requests on each supported host/model; neither +undertriggering nor overtriggering is a permanent model-independent default. +When runtime tests are unavailable, report description quality as a static +assessment and actual triggering as unvalidated. Check each for: - trigger phrases a real user would type, not just a capability summary - **collisions**: two skills (across plugins too) with the same name or near-identical descriptions give the trigger mechanism no basis to choose. Differentiators must live in the description, not the body — the body is only read after triggering. diff --git a/plugins/code-tools/skills/test-scaffold/SKILL.md b/plugins/code-tools/skills/test-scaffold/SKILL.md index f06899b..1acddae 100644 --- a/plugins/code-tools/skills/test-scaffold/SKILL.md +++ b/plugins/code-tools/skills/test-scaffold/SKILL.md @@ -1,11 +1,14 @@ --- name: test-scaffold -description: "Generates test file stubs for JavaScript/TypeScript source files (vitest or jest). Use when asked to write tests for, scaffold tests, generate test file, or add test coverage for a file or function in a JS/TS project." +description: "Generates JavaScript/TypeScript (Vitest or Jest) test stubs when explicitly asked to scaffold tests, create a test skeleton, or list placeholder cases. Does not apply to requests for working tests or increased coverage; those need executable assertions." allowed-tools: Bash, Read, Write, Glob, Grep --- Generate test stubs for: $ARGUMENTS +If the user requests working tests or coverage, follow that request with executable +assertions using the project conventions; the stub-only workflow below does not apply. + ## Project test context (pre-fetched) **Test framework:** !`(grep -q '"vitest"' package.json 2>/dev/null && echo "vitest") || (grep -q '"jest"' package.json 2>/dev/null && echo "jest") || echo "unknown"` diff --git a/plugins/go-tools/.claude-plugin/plugin.json b/plugins/go-tools/.claude-plugin/plugin.json index 8f65ed5..ad94e2c 100644 --- a/plugins/go-tools/.claude-plugin/plugin.json +++ b/plugins/go-tools/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "clownware-go-tools", "description": "Go + templ + sqlc stack skills: templ component scaffolding, table-driven test scaffolding, sqlc query scaffolding, performance-budget gate checks, and task-ci-aware PR descriptions, following go-performance-starter conventions with fallbacks for other Go projects. Also ships a format-on-edit hook that runs goimports/gofmt and templ fmt on files Claude edits.", - "version": "0.3.2", + "version": "0.3.3", "license": "Apache-2.0", "author": { "name": "clownware" diff --git a/plugins/go-tools/skills/templ-component-scaffold/SKILL.md b/plugins/go-tools/skills/templ-component-scaffold/SKILL.md index 1718029..0e0387e 100644 --- a/plugins/go-tools/skills/templ-component-scaffold/SKILL.md +++ b/plugins/go-tools/skills/templ-component-scaffold/SKILL.md @@ -36,7 +36,10 @@ If the pre-fetched layout differs from this table, follow the existing layout in - Pages call `@layouts.Base(props.BaseProps) { ... }`. Partials and components render standalone so HTMX fragments are correct. - Accessibility: semantic HTML, labelled inputs, ARIA only where semantics fall short. Mobile-first responsive Tailwind. - Prefer server-rendered HTMX; add Alpine.js only for light client-only interactivity. Pages must work as progressive enhancement. -- Styling via Tailwind utility classes / existing semantic color tokens — no inline styles, no hardcoded colors. +- Read the target's stylesheet configuration and a nearby view before styling. + Use Tailwind and semantic tokens only where the project already uses them; + otherwise follow its existing CSS or styling API. Do not introduce a new styling + dependency or starter class names as part of scaffolding. ## After scaffolding diff --git a/plugins/go-tools/skills/test-scaffold/SKILL.md b/plugins/go-tools/skills/test-scaffold/SKILL.md index 8b2c73a..e271acc 100644 --- a/plugins/go-tools/skills/test-scaffold/SKILL.md +++ b/plugins/go-tools/skills/test-scaffold/SKILL.md @@ -1,11 +1,14 @@ --- name: test-scaffold -description: "Generates table-driven Go test stubs (_test.go) following go-performance-starter's testing conventions (ADR-023). Use in Go projects when asked to write tests for, scaffold tests, generate a test file, or add test coverage for a Go source file, function, or package." +description: "Generates Go test stubs when explicitly asked to scaffold tests, create a test skeleton, or list placeholder cases. Does not apply to requests for working tests or increased coverage; those need executable assertions." allowed-tools: Bash, Read, Write, Glob, Grep --- Generate table-driven test stubs for: $ARGUMENTS +If the user requests working tests or coverage, follow that request with executable +assertions using the project conventions; the stub-only workflow below does not apply. + ## Project test context (pre-fetched) **Module path:** !`out=$(sed -n "s/^module //p" go.mod 2>/dev/null | head -1); echo "${out:-no go.mod found — is this a Go module? confirm before scaffolding}"` diff --git a/plugins/pezza-design-system/.claude-plugin/plugin.json b/plugins/pezza-design-system/.claude-plugin/plugin.json index ee2663c..2d51945 100644 --- a/plugins/pezza-design-system/.claude-plugin/plugin.json +++ b/plugins/pezza-design-system/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "pezza-design-system", "description": "The Pezza brand design system as a skill: design guidelines, color/type/spacing tokens, logo and photography assets, React component primitives, and two UI kit starters (web-app shell and DJ/producer site). Generates on-brand interfaces, artifacts, and production code.", - "version": "0.5.2", + "version": "0.5.3", "license": "Apache-2.0", "author": { "name": "clownware" diff --git a/plugins/pezza-design-system/skills/pezza-design/SKILL.md b/plugins/pezza-design-system/skills/pezza-design/SKILL.md index dd28464..7abd07c 100644 --- a/plugins/pezza-design-system/skills/pezza-design/SKILL.md +++ b/plugins/pezza-design-system/skills/pezza-design/SKILL.md @@ -8,7 +8,7 @@ user-invocable: true 1. **Accent is a cursor, never decoration.** `--accent` (Crossfade Cyan) appears only on: links (hover/active), focus rings, waveform/playhead moments, one "now playing"-class glow per view, checked control on-states (switch, checkbox), and at most one accent CTA per view. Never surface backgrounds, never gradients, never decorative repetition (no accent-per-row lists). 2. **Monochrome discipline.** Grayscale Ink ramp + the one accent + muted status colors. No new hues, no gradients (the one exception: `--protect-gradient`, which is ink, not color). Photography carries the color. -3. **The mark's rules are law.** Never filled, never outlined, never recolored (accent variant excepted, digital only), never distorted. Clearspace = one stroke-square. Two lockups only: bare emblem, and emblem + wordmark horizontal. +3. **The mark's rules are law.** Do not add fill or outlines to the stroke master, recolor it (official accent variant excepted, digital only), or distort it. Use the supplied official filled artwork from `assets/logo/` unchanged for static placement; use the stroke master for draw-on animation. Clearspace = one stroke-square. Two lockups only: bare emblem, and emblem + wordmark horizontal. 4. **Protection gradient is mandatory over photography.** Any text or mark on a photo sits over `--protect-gradient` (PhotoHero bakes this in). One exception: a centered bare mark on a photo may use the documented soft drop-shadow instead. 5. **The metadata register is the signature.** Every technical value — BPM, key, catalog #, dates, counts, Lighthouse scores, commit refs, stack labels — is Space Mono (MetaLabel), usually uppercase. Music and dev values share one voice. 6. **Three faces, three jobs.** Space Grotesk = display/UI/wordmark (ALL CAPS, 0.18em tracking). Space Mono = metadata. Inter = long-form prose only, via `.prose`. diff --git a/plugins/rust-tools/.claude-plugin/plugin.json b/plugins/rust-tools/.claude-plugin/plugin.json index 7f722b6..24f74df 100644 --- a/plugins/rust-tools/.claude-plugin/plugin.json +++ b/plugins/rust-tools/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "clownware-rust-tools", "description": "Rust stack skills: table-driven test scaffolding and CI-aware quality-gate checks (cargo fmt/clippy/test/deny, fuzz targets), following the tunes_protocol and gittunes workspace conventions with fallbacks for other Rust projects. Also ships a format-on-edit hook that runs rustfmt (edition-detected from the nearest Cargo.toml) on files Claude edits.", - "version": "0.1.1", + "version": "0.1.2", "license": "Apache-2.0", "author": { "name": "clownware" diff --git a/plugins/rust-tools/skills/test-scaffold/SKILL.md b/plugins/rust-tools/skills/test-scaffold/SKILL.md index c0c47b7..772f848 100644 --- a/plugins/rust-tools/skills/test-scaffold/SKILL.md +++ b/plugins/rust-tools/skills/test-scaffold/SKILL.md @@ -1,11 +1,14 @@ --- name: test-scaffold -description: "Generates table-driven Rust test stubs (#[cfg(test)] modules with case tables) following the tunes_protocol/gittunes workspace conventions. Use in Rust projects when asked to write tests for, scaffold tests, generate a test module, or add test coverage for a Rust source file, function, or crate." +description: "Generates Rust test stubs when explicitly asked to scaffold tests, create a test skeleton, or list placeholder cases. Does not apply to requests for working tests or increased coverage; those need executable assertions." allowed-tools: Bash, Read, Write, Edit, Glob, Grep --- Generate table-driven test stubs for: $ARGUMENTS +If the user requests working tests or coverage, follow that request with executable +assertions using the project conventions; the stub-only workflow below does not apply. + ## Project test context (pre-fetched) **Cargo manifest:** !`out=$(ls Cargo.toml 2>/dev/null); echo "${out:-no Cargo.toml at root — is this a Rust project? confirm before scaffolding}"` @@ -67,7 +70,10 @@ mod tests { ### 5. Verify it compiles -`cargo check -p ` (or plain `cargo check`). The scaffold must compile; ignored tests must not fail the suite. +Run `cargo test -p --no-run` (or `cargo test --no-run` outside a workspace), +using the target crate's normal feature and target flags. This compiles test bodies, +including ignored tests; plain `cargo check` does not. Report missing toolchains or +dependencies as unvalidated compilation, never a pass. ## Rules diff --git a/scripts/__pycache__/publish_skill_audit.cpython-314.pyc b/scripts/__pycache__/publish_skill_audit.cpython-314.pyc new file mode 100644 index 0000000..1b05f71 Binary files /dev/null and b/scripts/__pycache__/publish_skill_audit.cpython-314.pyc differ diff --git a/scripts/__pycache__/test_publish_skill_audit.cpython-314.pyc b/scripts/__pycache__/test_publish_skill_audit.cpython-314.pyc new file mode 100644 index 0000000..2727de3 Binary files /dev/null and b/scripts/__pycache__/test_publish_skill_audit.cpython-314.pyc differ diff --git a/scripts/__pycache__/test_skill_regressions.cpython-314.pyc b/scripts/__pycache__/test_skill_regressions.cpython-314.pyc new file mode 100644 index 0000000..519b114 Binary files /dev/null and b/scripts/__pycache__/test_skill_regressions.cpython-314.pyc differ diff --git a/scripts/publish_skill_audit.py b/scripts/publish_skill_audit.py new file mode 100644 index 0000000..cb0b414 --- /dev/null +++ b/scripts/publish_skill_audit.py @@ -0,0 +1,117 @@ +#!/usr/bin/env python3 +"""Convert a reviewed audit to Ops signals; publish only with --publish. + +Uses only the standard library. Credentials stay in OPS_INGEST_TOKEN. +The report is the scoring authority; this tool does not grade skills. +""" +import argparse +import hashlib +import json +import os +from pathlib import Path +import sys +import time +import urllib.error +import urllib.parse +import urllib.request + + +def payload_for(report): + if report.get("schema_version") != 1: + raise ValueError("unsupported audit schema") + stamp = report["observed_at"] + if type(stamp) is not int or not 0 <= stamp <= time.time() + 86400: + raise ValueError("invalid observation timestamp") + digest = hashlib.sha256(json.dumps(report, sort_keys=True).encode()).hexdigest() + key = f"{report['run_id']}:{digest}" + entities, signals, seen = [], [], set() + findings = {f["id"]: f for f in report["findings"]} + if len(findings) != len(report["findings"]): + raise ValueError("duplicate finding IDs") + for row in report["entities"]: + eid = row["id"] + if eid in seen or not eid.startswith(("skill:", "plugin:")): + raise ValueError("invalid or duplicate entity ID") + seen.add(eid) + score = row["review_score"] + if type(score) is not int or not 0 <= score <= 100: + raise ValueError("review score must be an integer from 0 to 100") + linked = [findings[f] for f in row["finding_ids"]] + if any(type(f["severity"]) is not int or not 0 <= f["severity"] <= 4 for f in linked): + raise ValueError("invalid severity") + severity = max((f["severity"] for f in linked), default=0) + # Do not overwrite inventory metadata owned by the manifests poller. + entities.append({"id": eid, "kind": row["kind"], "name": row["name"], + "category": "plugin_skill", "owner": "clownware"}) + def add(metric, text, number=None, sev=0): + item = {"entityId": eid, "metric": metric, "valueText": text, + "severity": sev, "observedAt": stamp, "dedupeKey": key} + if number is not None: + item["valueNum"] = number + signals.append(item) + add("skill_audit.review_score", "Static review only; 100 means no deductions in this rubric, not proven capability.", score) + add("skill_audit.findings", json.dumps(linked, separators=(",", ":")), len(linked), severity) + add("skill_audit.provenance", json.dumps({"run": report["run_id"], "rubric": report["rubric_version"], + "revision": row["revision"], "sha256": row["sha256"], "source_path": row["source_path"], + "reviewer": report["reviewer"], "scope": row["review_scope"]}, separators=(",", ":"))) + add("skill_audit.behavior", row["behavior"]) + add("skill_audit.portability", row["portability"]) + if not entities or len(entities) > 500 or len(signals) > 500: + raise ValueError("payload must contain 1–500 entities and at most 500 signals; split the audit") + payload = {"entities": entities, "signals": signals} + if len(json.dumps(payload).encode()) > 1_000_000: + raise ValueError("payload exceeds Ops body limit") + return payload + + +class NoRedirect(urllib.request.HTTPRedirectHandler): + def redirect_request(self, *args, **kwargs): + return None + + +def publish(payload, url, token): + parsed = urllib.parse.urlsplit(url) + if parsed.scheme != "https" or not parsed.netloc or parsed.username or parsed.query or parsed.fragment: + raise ValueError("OPS_URL must be a credential-free HTTPS URL without query or fragment") + if not token: + raise ValueError("OPS_INGEST_TOKEN is not set") + request = urllib.request.Request(url.rstrip("/") + "/ingest", data=json.dumps(payload).encode(), + headers={"Authorization": "Bearer " + token, "Content-Type": "application/json", + "User-Agent": "ops-skill-audit/1.0"}, method="POST") + try: + with urllib.request.build_opener(NoRedirect).open(request, timeout=30) as response: + result = json.load(response) + if response.status != 202 or result.get("ok") is not True: + raise ValueError("Ops did not acknowledge ingestion") + except urllib.error.HTTPError as error: + # Never echo response bodies or request headers: either could contain secrets. + raise ValueError(f"Ops ingestion failed: HTTP {error.code}") from None + if result.get("entities") != len(payload["entities"]) or result.get("signals") != len(payload["signals"]): + raise ValueError("Ops acknowledged unexpected counts; verify before retrying") + return result + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("report", type=Path) + parser.add_argument("--output", type=Path, help="write reviewable payload") + parser.add_argument("--publish", action="store_true") + parser.add_argument("--url", default=os.environ.get("OPS_URL")) + args = parser.parse_args() + try: + payload = payload_for(json.loads(args.report.read_text())) + if args.output: + args.output.write_text(json.dumps(payload, indent=2) + "\n") + print(f"Prepared {len(payload['entities'])} entities and {len(payload['signals'])} signals") + if args.publish: + if not args.url: + raise ValueError("set OPS_URL or --url") + print(json.dumps(publish(payload, args.url, os.environ.get("OPS_INGEST_TOKEN")))) + except (ValueError, KeyError, OSError, urllib.error.URLError) as error: + print(f"Error: {error}", file=sys.stderr) + return 1 + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/scripts/requirements-audit.txt b/scripts/requirements-audit.txt new file mode 100644 index 0000000..f62ce0c --- /dev/null +++ b/scripts/requirements-audit.txt @@ -0,0 +1 @@ +PyYAML==6.0.3 diff --git a/scripts/test_publish_skill_audit.py b/scripts/test_publish_skill_audit.py new file mode 100644 index 0000000..1d1add2 --- /dev/null +++ b/scripts/test_publish_skill_audit.py @@ -0,0 +1,56 @@ +import copy +import unittest +from unittest.mock import patch + +from publish_skill_audit import NoRedirect, payload_for, publish + + +class AuditPayloadTests(unittest.TestCase): + def setUp(self): + self.report = {"schema_version": 1, "run_id": "fixture", "observed_at": 1, + "rubric_version": "1", "reviewer": "fixture", "findings": [], "entities": [{ + "id": "skill:example:review", "kind": "skill", "name": "example:review", + "review_score": 100, "finding_ids": [], "revision": "abc", "sha256": "123", + "source_path": "skills/review/SKILL.md", "review_scope": "static", + "behavior": "not evaluated", "portability": "not evaluated"}]} + + def test_retry_is_idempotent_but_changed_report_gets_new_key(self): + a = payload_for(self.report) + self.assertEqual(a, payload_for(self.report)) + changed = copy.deepcopy(self.report) + changed["entities"][0]["review_score"] = 95 + self.assertNotEqual(a["signals"][0]["dedupeKey"], payload_for(changed)["signals"][0]["dedupeKey"]) + + def test_preserves_inventory_metadata_and_does_not_claim_behavior_pass(self): + p = payload_for(self.report) + self.assertNotIn("metadata", p["entities"][0]) + behavior = next(s for s in p["signals"] if s["metric"] == "skill_audit.behavior") + self.assertEqual(behavior["valueText"], "not evaluated") + self.assertNotIn("valueNum", behavior) + + def test_findings_drive_severity_independently_of_score(self): + self.report["findings"] = [{"id": "F1", "severity": 3, "detail": "fixture"}] + self.report["entities"][0]["finding_ids"] = ["F1"] + p = payload_for(self.report) + finding = next(s for s in p["signals"] if s["metric"] == "skill_audit.findings") + self.assertEqual(finding["severity"], 3) + self.assertEqual(finding["valueNum"], 1) + + def test_rejects_duplicate_and_invalid_scores(self): + self.report["entities"].append(copy.deepcopy(self.report["entities"][0])) + with self.assertRaises(ValueError): payload_for(self.report) + self.report["entities"].pop() + for value in (-1, 101, True, float("nan")): + self.report["entities"][0]["review_score"] = value + with self.assertRaises(ValueError): payload_for(self.report) + + def test_blocks_token_disclosure_via_redirect_or_insecure_url(self): + self.assertIsNone(NoRedirect().redirect_request(None, None, None, None, None, None)) + with patch("urllib.request.build_opener") as opener: + with self.assertRaises(ValueError): publish({}, "http://example.com", "secret") + with self.assertRaises(ValueError): publish({}, "https://user:pass@example.com", "secret") + opener.assert_not_called() + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_skill_regressions.py b/scripts/test_skill_regressions.py new file mode 100644 index 0000000..a51e541 --- /dev/null +++ b/scripts/test_skill_regressions.py @@ -0,0 +1,70 @@ +"""Behavioral checks for executable audit regressions; no real commits/pushes.""" +import json +from pathlib import Path +import re +import shutil +import subprocess +import sys +import tempfile +import unittest + +ROOT = Path(__file__).resolve().parents[1] + + +class SkillRegressions(unittest.TestCase): + def test_yaml_parser_rejects_colon_error_and_accepts_block_scalar(self): + with tempfile.TemporaryDirectory() as temp: + root = Path(temp) + plugin = root / 'plugins/example' + (plugin / '.claude-plugin').mkdir(parents=True) + (plugin / 'skills/example').mkdir(parents=True) + (root / '.claude-plugin').mkdir() + (plugin / '.claude-plugin/plugin.json').write_text(json.dumps({ + 'name': 'example', 'version': '1.0.0', 'description': 'Example'})) + (root / '.claude-plugin/marketplace.json').write_text(json.dumps({ + 'plugins': [{'name': 'example', 'source': './plugins/example'}]})) + entry = plugin / 'skills/example/SKILL.md' + for description, passes in [('description: Guidance: examples', False), + ('description: >-\n Guidance: examples', True)]: + entry.write_text(f'---\nname: example\n{description}\n---\nUse this fixture.\n') + result = subprocess.run([sys.executable, str(ROOT / 'scripts/validate_plugins.py')], + cwd=root, capture_output=True, text=True, timeout=10) + self.assertEqual(result.returncode == 0, passes, result.stdout + result.stderr) + + def test_guard_covers_supported_command_forms_without_running_them(self): + deny = ['git commit --no-verify', '/usr/bin/git commit --no-verify', + 'env git commit --no-verify', 'env -i git push --no-verify', + 'env FOO=bar /usr/bin/git commit -n', 'command git push --no-verify', + 'git -C /tmp commit --no-verify'] + allow = ['git status', 'git push -n', 'echo git commit --no-verify', + 'printf hello', 'git diff --stat'] + with tempfile.TemporaryDirectory() as temp: + for command in deny + allow: + with self.subTest(command=command): + result = subprocess.run(['bash', str(ROOT / 'plugins/code-tools/hooks/git-guard.sh')], + input=json.dumps({'cwd': temp, 'tool_input': {'command': command}}), + text=True, capture_output=True, timeout=5) + self.assertEqual(result.returncode, 0, result.stderr) + output = json.loads(result.stdout) if result.stdout.strip() else {} + decision = output.get('hookSpecificOutput', {}).get('permissionDecision') + self.assertEqual(decision == 'deny', command in deny) + + def test_accessibility_probe_discovers_both_owned_template_stacks(self): + text = (ROOT / 'plugins/code-tools/skills/a11y-audit/SKILL.md').read_text() + line = next(line for line in text.splitlines() if line.startswith('**Markup/component files:**')) + command = re.search(r'!`([^`]+)`', line)[1] + with tempfile.TemporaryDirectory() as temp: + for name in ['index.astro', 'view.templ']: + (Path(temp) / name).write_text('') + for shell in ['bash', 'zsh']: + if not shutil.which(shell): + continue + result = subprocess.run([shell, '-f', '-c', command], cwd=temp, + text=True, capture_output=True, timeout=5) + self.assertEqual(result.returncode, 0) + self.assertEqual(result.stderr, '') + self.assertTrue(result.stdout.startswith('2 files'), result.stdout) + + +if __name__ == '__main__': + unittest.main() diff --git a/scripts/validate_plugins.py b/scripts/validate_plugins.py new file mode 100644 index 0000000..59e0c0c --- /dev/null +++ b/scripts/validate_plugins.py @@ -0,0 +1,114 @@ +#!/usr/bin/env python3 +"""Validate local marketplace plugin structure and real skill YAML; never execute skills.""" +import json, os, re, stat, sys + +import yaml + +errors = [] +plugin_dirs = sorted( + d for d in (os.path.join("plugins", n) for n in os.listdir("plugins")) + if os.path.isdir(d) +) +if not plugin_dirs: + sys.exit("FAIL: no plugin directories under plugins/") + +for pdir in plugin_dirs: + tag = os.path.basename(pdir) + mpath = os.path.join(pdir, ".claude-plugin", "plugin.json") + try: + with open(mpath) as f: + manifest = json.load(f) + except FileNotFoundError: + errors.append(f"{tag}: missing {mpath}") + continue + except json.JSONDecodeError as e: + errors.append(f"{tag}: {mpath} invalid JSON — {e}") + continue + + name = manifest.get("name", "") + if not re.fullmatch(r"[a-z0-9-]+", name): + errors.append(f"{tag}: plugin.json 'name' must be kebab-case, got {name!r}") + if not re.fullmatch(r"\d+\.\d+\.\d+", manifest.get("version", "")): + errors.append(f"{tag}: plugin.json 'version' must be semver, got {manifest.get('version')!r}") + if not manifest.get("description"): + errors.append(f"{tag}: plugin.json 'description' is empty") + + hooks_ref = manifest.get("hooks") + hooks_path = None + if isinstance(hooks_ref, str): + hooks_path = os.path.normpath(os.path.join(pdir, hooks_ref)) + if not os.path.isfile(hooks_path): + errors.append(f"{tag}: plugin.json 'hooks' points at missing file {hooks_ref}") + hooks_path = None + elif os.path.isfile(os.path.join(pdir, "hooks", "hooks.json")): + hooks_path = os.path.join(pdir, "hooks", "hooks.json") + + if hooks_path: + try: + with open(hooks_path) as f: + hooks_cfg = json.load(f) + except json.JSONDecodeError as e: + errors.append(f"{tag}: {hooks_path} invalid JSON — {e}") + hooks_cfg = {} + events = hooks_cfg.get("hooks") + if not isinstance(events, dict) or not events: + errors.append(f"{tag}: {hooks_path} must have a non-empty top-level 'hooks' object") + else: + for event, matchers in events.items(): + if not isinstance(matchers, list): + errors.append(f"{tag}: hooks.{event} must be an array") + continue + for m in matchers: + for h in m.get("hooks", []): + if h.get("type") != "command": + continue + cmd = h.get("command", "") + for rel in re.findall(r"\$\{CLAUDE_PLUGIN_ROOT\}\"?(/[^\s\"']+)", cmd): + script = os.path.normpath(pdir + rel) + if not os.path.isfile(script): + errors.append(f"{tag}: hook command references missing file {rel}") + elif not os.stat(script).st_mode & stat.S_IXUSR: + errors.append(f"{tag}: hook script {rel} is not executable (chmod +x)") + + skills_dir = os.path.join(pdir, "skills") + if os.path.isdir(skills_dir): + for sname in sorted(os.listdir(skills_dir)): + spath = os.path.join(skills_dir, sname, "SKILL.md") + if not os.path.isdir(os.path.join(skills_dir, sname)): + continue + if not os.path.isfile(spath): + errors.append(f"{tag}: skills/{sname}/ has no SKILL.md") + continue + with open(spath) as f: + text = f.read() + fm = re.match(r"\A---\n(.*?)\n---\n", text, re.DOTALL) + if not fm: + errors.append(f"{tag}: skills/{sname}/SKILL.md missing frontmatter block") + continue + try: + metadata = yaml.safe_load(fm.group(1)) + except yaml.YAMLError as exc: + errors.append(f"{tag}: skills/{sname}/SKILL.md invalid YAML: {exc}") + continue + if not isinstance(metadata, dict): + errors.append(f"{tag}: skills/{sname}/SKILL.md frontmatter must be a mapping") + continue + for field in ("name", "description"): + if not isinstance(metadata.get(field), str) or not metadata[field].strip(): + errors.append(f"{tag}: skills/{sname}/SKILL.md frontmatter missing string '{field}'") + if metadata.get("name") != sname: + errors.append(f"{tag}: skills/{sname}/SKILL.md name must match directory") + +with open(".claude-plugin/marketplace.json") as f: + mp = json.load(f) +for entry in mp.get("plugins", []): + src = entry.get("source") + if isinstance(src, str) and not os.path.isdir(src): + errors.append(f"catalog: {entry.get('name')} relative source {src} does not exist") + +if errors: + print("plugin validation FAILED:") + for e in errors: + print(f" - {e}") + sys.exit(1) +print(f"OK: {len(plugin_dirs)} in-repo plugin(s) valid")