511 Commits

Author SHA1 Message Date
Affaan Mustafa
4f5f612b61
docs: record stale salvage gap pass (#1818) 2026-05-12 15:18:13 -04:00
Affaan Mustafa
df60af9619
feat: salvage code-reviewer false-positive guardrails (#1817) 2026-05-12 15:01:46 -04:00
Affaan Mustafa
ab0f0187de
feat: salvage frontend design guidance (#1816) 2026-05-12 14:44:17 -04:00
Affaan Mustafa
65c1502ecd
feat: salvage cost tracking and skill scout (#1815) 2026-05-12 14:23:46 -04:00
Affaan Mustafa
5d3ed622c6
docs: map stale PR salvage sources (#1813) 2026-05-12 13:42:36 -04:00
Affaan Mustafa
f239379ebf
feat: salvage Django Celery workflow (#1812)
Source: maintainer-owned salvage of useful Django reviewer/build-resolver/Celery work from stale PR #1310 by mrigank2seven.

- add django-reviewer and django-build-resolver agents

- add django-celery skill with timezone-aware scheduling example

- update catalog counts to 60 agents / 221 skills and record the May 12 salvage gap pass

Co-authored-by: MRIGANK GUPTA <mrigank2seven@users.noreply.github.com>
2026-05-12 13:20:33 -04:00
Affaan Mustafa
68229a8996
docs: inventory workspace legacy repos (#1789) 2026-05-12 04:08:34 -04:00
Affaan Mustafa
8cbf6763c4
docs: publish stale PR salvage ledger (#1788) 2026-05-12 03:50:34 -04:00
Affaan Mustafa
de559bddd2
docs: inventory legacy artifacts (#1787) 2026-05-12 03:34:18 -04:00
Affaan Mustafa
008ce3081b
docs: add release publication readiness gate (#1786) 2026-05-12 03:16:22 -04:00
Affaan Mustafa
cdf1b03779
docs: add data-backed harness adapter scorecard (#1785)
* docs: add data-backed harness adapter scorecard

* fix: normalize adapter matrix line endings

* test: avoid doubled CRLF simulation
2026-05-12 02:59:52 -04:00
Affaan Mustafa
969acd9078
docs: add harness adapter compliance matrix (#1784) 2026-05-12 02:24:04 -04:00
Affaan Mustafa
22aabf7d4f test: harden InsAIts wrapper fake Python shim 2026-05-12 01:13:01 -04:00
Affaan Mustafa
901e41997b test: stabilize MCP stderr probe timeout 2026-05-12 01:13:01 -04:00
Affaan Mustafa
940135ea47 feat: add ECC statusline observability hooks
Salvages the useful statusline/context monitor work from stale PR #1504 while preserving the current continuous-learning hook runner wiring.

Adds the metrics bridge, context monitor, statusline script, shared cost/session bridge utilities, and tests. Fixes the reviewed false loop-detection hash collision for non-file tools, avoids default-session cost inflation, sanitizes statusline task lookup, and records hook payload session IDs in cost-tracker.
2026-05-11 23:44:06 -04:00
Affaan Mustafa
e9c8845833 feat: add Astraflow provider support 2026-05-11 23:21:46 -04:00
Affaan Mustafa
03108bea62 fix: scope SessionStart context injection 2026-05-11 22:56:29 -04:00
Affaan Mustafa
67a8b914ee test: harden mcp health port readiness 2026-05-11 22:40:19 -04:00
Affaan Mustafa
6d613f67dd fix: harden opencode project file probes 2026-05-11 22:40:19 -04:00
Affaan Mustafa
fd9453f6ee docs: salvage F# agent and language guidance 2026-05-11 21:43:17 -04:00
Affaan Mustafa
4220f1b064 test: relax InsAIts monitor timeout 2026-05-11 19:38:21 -04:00
Affaan Mustafa
14816289ba feat: salvage windows desktop e2e skill
Reintroduce the Windows desktop E2E testing skill from stale PR #1334 with current manifest wiring, package publish coverage, catalog counts, and sanitized environment-path guidance.
2026-05-11 19:15:02 -04:00
Affaan Mustafa
9b385c9e30 fix: salvage stale PR plugin install fixes 2026-05-11 18:48:23 -04:00
Affaan Mustafa
8aa8c32d2a feat: add observability readiness gate 2026-05-11 18:33:14 -04:00
Divyesh Thirukonda
ab6e998383 fix: tune machine learning workflow routing 2026-05-11 18:11:05 -04:00
Divyesh Thirukonda
240d52d27f feat: add machine learning engineering workflow
(cherry picked from commit 4b0eeacd66b2f65b7b11d7f2c8bef056c50b08e4)
2026-05-11 17:55:50 -04:00
Affaan Mustafa
c45aeee57f
fix: salvage remaining stale queue fixes (#1754) 2026-05-11 16:41:08 -04:00
Affaan Mustafa
fd820d6306 feat: sync GitHub queue into work items 2026-05-11 13:07:29 -04:00
Affaan Mustafa
9887ba6123 feat: add status exit code gate 2026-05-11 12:38:59 -04:00
Affaan Mustafa
b1e67788f7 feat: add work items CLI 2026-05-11 12:24:12 -04:00
Affaan Mustafa
8926ea925e feat: track linked work items in status 2026-05-11 12:07:27 -04:00
Affaan Mustafa
e70ef4a2ff feat: add Qwen install target 2026-05-11 11:27:46 -04:00
Affaan Mustafa
c7c1e36625 feat: add JoyCode install target 2026-05-11 11:10:59 -04:00
Affaan Mustafa
fb9a8f2973 feat: add status readiness rollup 2026-05-11 10:50:29 -04:00
Affaan Mustafa
d2760d0359 feat: add markdown status snapshots 2026-05-11 10:09:39 -04:00
Affaan Mustafa
b39d2244cf docs: salvage focused stale PR contributions
- add Vite and Redis pattern skills from closed stale PRs

- add frontend-slides support assets

- port skill-comply runner fixes and LLM prompt/provider regressions

- harden agent frontmatter validation and sync catalog counts
2026-05-11 05:31:12 -04:00
Affaan Mustafa
7fa1e5b6db fix: port LLM provider config and tool schemas 2026-05-11 04:12:35 -04:00
Affaan Mustafa
f442bac8c9
fix: port Windows hook safety fixes (#1719) 2026-05-11 03:56:51 -04:00
Affaan Mustafa
12e1bc424d
fix: port continuous-learning observer fixes
Ports continuous-learning observer signal, storage, remote normalization, and v1 deprecation fixes onto current main.
2026-05-11 03:35:42 -04:00
Affaan Mustafa
e674a7dbd7
fix: harden CI validators
Ports personal-path validator hardening and quoted checkout detection onto current main.
2026-05-11 03:08:43 -04:00
Affaan Mustafa
1abc3fb381
fix: port hook session and dashboard safety fixes
Ports suggest-compact session_id isolation and dashboard terminal/document launch safety onto current main.
2026-05-11 02:53:28 -04:00
Affaan Mustafa
27508842b1
fix: sync skill frontmatter and catalog counts
Adds missing skill frontmatter, normalizes strict YAML metadata, syncs README catalog counts, and extends catalog validation for README/plugin/marketplace count drift.
2026-05-11 02:33:29 -04:00
Affaan Mustafa
8a57679222
fix: restore short Claude plugin slug and skill installs (#1712) 2026-05-11 02:10:36 -04:00
Affaan Mustafa
7b964402ee
fix: bypass GateGuard file gates in subagents (#1710) 2026-05-11 01:51:24 -04:00
Gaurav Dubey
e196f8a4cb
fix(ci): flag SKILL.md frontmatter defects in validate-skills (#1669)
* fix(ci): flag SKILL.md frontmatter defects in validate-skills

Issue #1663 reported two SKILL.md frontmatter defects (missing `name:`
on skill-stocktake; literal block-scalar `description: |-` on
openclaw-persona-forge) that PR #1664 addresses at the data level.

This change is complementary: it extends `scripts/ci/validate-skills.js`
to catch the same class of defect statically going forward, so the
frontmatter-vs-renderer problems do not silently reappear as new skills
land.

## Checks added
- Frontmatter must declare a `name:` field.
- Frontmatter `description:` must not use a literal block scalar
  (`|` / `|-` / `|+`) — these preserve internal newlines and break
  flat-table renderers keyed off `description`. Folded (`>`) and inline
  strings are accepted.

## Behavior
- Frontmatter findings default to WARN (exit 0) so this PR does not
  break CI while the two known offenders are still on main. Pass
  `--strict` or set `CI_STRICT_SKILLS=1` to promote them to ERROR
  (exit 1). Structural findings (missing / empty SKILL.md) remain
  errors as before.
- Today against main, the validator reports exactly two warnings —
  the same two files called out in #1663 — and exits 0. When #1664
  lands, the validator reports zero warnings, at which point strict
  mode can be enabled in CI.

## Parser notes
- Bespoke frontmatter parser mirrors the style of `validate-agents.js`
  (tolerant of UTF-8 BOM and CRLF; no new npm dependency).
- Block-scalar continuation lines are skipped so keys inside a block
  scalar are not mistaken for top-level keys.
- Hidden directories (`.something/`) under skills/ are now skipped.

## Tests
Adds five focused tests to `tests/ci/validators.test.js`:
- warns when frontmatter is missing `name` (default mode)
- errors when frontmatter is missing `name` (--strict mode)
- warns on literal block-scalar description (|-)
- accepts folded (>) and inline descriptions under --strict
- skips hidden directories under skills/

## Docs
Adds two bullets to the `Skill Checklist` in CONTRIBUTING.md covering
the two rules now surfaced by the validator.

Refs #1663. Complements (does not compete with) #1664.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(ci): harden SKILL.md frontmatter checks after bot review

Address findings from CodeRabbit, Greptile, and cubic on #1669:

- Guard empty or whitespace-only `name:` values. Previously
  `name:    ` silently passed because the presence check only
  tested key-set membership; now inspectFrontmatter captures
  trimmed values and validate flags an explicit 'name is empty'
  WARN/ERROR.
- Broaden block-scalar detection to cover YAML 1.2 indent
  indicators (`|2`, `|-2`, `>2-`) and trailing comments
  (`|-  # note`). The old regex required a bare `|`/`>` with
  optional `+`/`-`, which let valid-but-disallowed forms slip
  through.
- Update CONTRIBUTING.md checklist to list `|+` alongside `|`
  and `|-` for parity with the validator.
- Extend runSkillsValidator to accept env overrides and add four
  regression tests: empty name, |+ description, |-2 + comment, and
  CI_STRICT_SKILLS=1.

* fix(ci): address round-2 review on validate-skills frontmatter

- Tighten extractFrontmatter closing delimiter to require a newline or
  end-of-file after the closing `---`, so body lines beginning with
  `---text` are not parsed as frontmatter (CodeRabbit).
- Strip both trailing and comment-only values in inspectFrontmatter, so
  `name: # todo` is surfaced as empty rather than silently passing
  (cubic P2).
- Extract validateSkillDir helper so the per-directory validation
  block moves out of validateSkills, keeping both functions under the
  50-line guideline (CodeRabbit nit).
- Hoist runSkillsValidator to module scope in the test harness and
  share the spawnSync import with execFileSync so the helper stops
  re-requiring child_process on every invocation (CodeRabbit nit).
- Add regression tests: comment-only `name:` values must fail strict
  mode; `---trailing` body lines must not be parsed as frontmatter.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Update tests/ci/validators.test.js

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2026-05-11 01:14:38 -04:00
Michael
600072ebd8
fix(hooks): resolve MCP health-check spawn ENOENT on Windows (#1456)
* fix(hooks): resolve MCP health-check spawn ENOENT on Windows

On Windows, commands like 'npx' are batch files (npx.cmd) that require
shell expansion to resolve via PATH. Without shell: true, Node.js
spawn() fails with ENOENT.

However, absolute paths (e.g. C:\Program Files\nodejs\node.exe) must
NOT use shell mode because cmd.exe misparses paths containing spaces.

Fix: enable shell mode only for non-absolute commands on Windows, using
path.isAbsolute() to distinguish. This matches how attemptReconnect()
already handles the shell option.

Fixes #1455

* fix(hooks): harden Windows shell spawn — validate command for metacharacters

Addresses bot review feedback on PR #1456:

- Add UNSAFE_SHELL_CHARS regex to guard against shell injection when
  needsShell=true: cmd.exe operators (&, |, <, >, ^, %, !, (), ;,
  whitespace) are rejected before shell mode is enabled
- Add typeof command === 'string' check so path.isAbsolute() cannot
  throw on malformed non-string command values
- Rename test to 'via PATH resolution' (not Windows-only; runs all platforms)
- Fix misleading test comment: 'node' resolves via PATH like npx.cmd but
  does not itself use .cmd; comment now accurately reflects the intent

* fix(hooks): kill full process tree on Windows when shell mode is used

When needsShell=true, the spawned child is cmd.exe. Calling child.kill()
only terminates the shell, leaving the real server process orphaned.

Use taskkill /PID <pid> /T /F on Windows+shell to kill the entire
process tree rooted at cmd.exe. Fall back to SIGTERM+SIGKILL on all
other platforms or when shell mode is not active.

* fix(hooks): fall back to child.kill() when taskkill fails

Windows taskkill can fail if it's not on PATH, the process already
exited, or permissions are denied. Previously the failure was silently
ignored and no kill signal reached the child.

Now: capture the spawnSync result and fall back to child.kill('SIGKILL')
on any taskkill error or non-zero status. This still may leak a
detached server process but at least guarantees the cmd.exe shell is
signaled.
2026-05-11 01:13:37 -04:00
Affaan Mustafa
841beea45c fix: handle dotted reserved snapshot names 2026-04-30 12:25:14 -04:00
Affaan Mustafa
61992f7f5e fix: harden loop-status snapshot writes 2026-04-30 12:25:14 -04:00
Affaan Mustafa
2715315438 fix: avoid loop-status index snapshot collision 2026-04-30 12:25:14 -04:00
Affaan Mustafa
7627926216 fix: preserve loop-status output on snapshot errors 2026-04-30 12:25:14 -04:00