121 Commits
Author SHA1 Message Date
Wen 79d22134e6 fix(opensource-pipeline): drop copied reports from the index even when .gitignore re-includes them
A .gitignore rule outranks .git/info/exclude, so a source project that ships !FORK_REPORT.md made git add -A stage the report. Remove both reports from the index after staging, in the forker's first commit and in every fold-in amend. The history test now runs both documented blocks against a negating .gitignore, prints the Passed/Failed summary for run-all.js, and skips on Windows like the publish-guard test.

(cherry picked from commit f493d9ff66)
2026-10-20 18:01:44 -04:00
Wen feff29fd80 fix(opensource-pipeline): keep pre-existing reports out of the first fork commit
Signed-off-by: Wen <jwcastillo@gmail.com>
(cherry picked from commit 35909e548e)
2026-10-20 18:01:44 -04:00
Wen 3906ba98f3 fix(opensource-pipeline): commit packaging and sanitizer fixes before publishing
The forker makes the only commit before the sanitizer and packager run,
and Step 7 publishes with `gh repo create --source=. --push`, which sends
commits, not the working tree. Packager output (LICENSE, README, CLAUDE.md,
setup.sh) never reached the public repo, and a secret the sanitizer caught
and the agent fixed in the working tree was still pushed in that commit.

- Fold sanitizer fixes and packager output into the single commit with
  `git commit --amend`, keeping FORK_REPORT.md and SANITIZATION_REPORT.md
  out through .git/info/exclude.
- Re-run the sanitizer after packaging (Step 5b) and refuse to push with
  uncommitted changes or more than one commit.
- Sanitizer Step 6 now runs the Step 1 secret patterns and Step 3 home
  path patterns over `git log -p --all`, not only a 4-keyword grep.

Signed-off-by: Wen <jwcastillo@gmail.com>
(cherry picked from commit fe767e2099)
2026-10-20 18:01:43 -04:00
haelyra 58fc8f25a5 feat(qoder): integrate native plugin and SessionStart projection 2026-10-10 17:40:46 -04:00
haelyra a4bf7a45ca fix(sanitizer): integrate unreadable audit with portable filename quoting 2026-10-10 17:36:33 -04:00
calm 2d9e6977dc feat: add native Qoder plugin support 2026-10-10 20:11:00 +08:00
haelyra d38daabd98 merge: preserve Ruby reviewer source 3227 with nil and false semantics 2026-10-09 17:04:15 -04:00
haelyra 74355d8cc7 merge: preserve source 2974 with tested distribution and commit guidance fixes 2026-10-09 16:09:57 -04:00
haelyra 27f49f447c merge: preserve tested Copilot distribution source 2963 2026-10-09 16:09:32 -04:00
D. Michael Piscitelli b10ed932e6 fix(agents): flag a failed signature read and a missing tally
A signature read that failed after one byte looked like a one-byte text
file and was skipped. The pipeline now runs under pipefail, so the file is
listed as unverified instead.

When cut, sort or uniq is missing, Step 7 says the tally is unavailable.
The count does not depend on them.
2026-10-04 08:04:07 +02:00
D. Michael Piscitelli 39450c9be2 fix(agents): list files the sanitizer cannot read
Step 1 skipped binaries while the role promised to verify the whole project,
so a credential in a spreadsheet, a PDF or an embedded database got a clean
PASS and never showed up in the report.

Step 7 now lists every file that doesn't read as text, plus any directory it
can't enter, and the pipeline stops on that list until a person confirms. On
this repo that's a few dozen files, all images and video, which is why they're
warnings and not failures. It doesn't try to extract or scan them: that needs
nested-archive recursion and size bounds, and I'd rather list a file than
half-scan it.

Detection is a first-byte signature check plus a whole-file NUL/control-byte
test, with file(1) only widening the list. If a detector fails, the file is
listed as unverified.

Filenames are untrusted, so Step 7 writes the paths to a manifest beside the
project directory, for a person to open, and keeps them out of its stdout
and its report section. Beside and not inside, so a re-run's text scans
can't read it back. The script prints the count itself as its last line. A
scan problem, a failed write, a walk that dies early or a run that never
reaches that line gives an unknown count, and the gate treats unknown as a
stop, not as zero.

Step 1 no longer skips *.min.js.

Tests in tests/skills/sanitizer-unreadable.test.js. Editing SKILL.md changes
the skill registry digest, so skill-triggers@1.json carries the new value.
2026-10-04 07:30:24 +02:00
haelyra 3c17f41a43 docs: resolve integration review findings 2026-09-30 18:58:26 -04:00
haelyra c965a61da5 Merge remote-tracking branch 'refs/remotes/pr/2655' into maint/stewardship-batch-2026-09-30
# Conflicts:
#	.claude-plugin/marketplace.json
#	.claude-plugin/plugin.json
#	AGENTS.md
#	README.md
#	README.zh-CN.md
#	docs/de-DE/README.md
#	docs/es/README.md
#	docs/ja-JP/README.md
#	docs/ko-KR/README.md
#	docs/pt-BR/README.md
#	docs/ru/README.md
#	docs/th/README.md
#	docs/tr/AGENTS.md
#	docs/tr/README.md
#	docs/uk-UA/README.md
#	docs/ur/README.md
#	docs/vi-VN/README.md
#	docs/zh-CN/AGENTS.md
#	docs/zh-CN/README.md
#	docs/zh-TW/README.md
#	scripts/lib/install-manifests.js
2026-09-30 13:20:41 -04:00
affaan-m 8d15d6bfde Merge reviewed agent inventory and evaluator defense documentation
Preserve PR2613 contributor history and exact approved postimages.
2026-09-28 03:20:39 -04:00
affaan-m c1f9286e9a Merge main and reconcile agent inventory documentation
Preserve the contributor audit and current skill-first guidance. Document all
68 shipped agents, namespace the added routes, and retain the evaluator
Prompt Defense Baseline without changing capabilities.
2026-09-28 03:12:46 -04:00
affaan-m 8f7db0f3cf fix(gan): verify responsive and keyboard evaluator capabilities 2026-09-27 23:11:21 -04:00
Leslie-23andClaude Opus 5.5 2d887d756d fix(agents): widen ruby-reviewer diff scope and flag bulk writes
- Review a caller-supplied diff when given; otherwise collect committed
  branch, staged, unstaged, and untracked Ruby changes. Plain `git diff`
  missed staged-only and committed PR changes.
- Add update_all/delete_all/update_columns/insert_all/upsert_all on
  user-reachable scopes to the HIGH tier, since they skip validations
  and callbacks.
- Fix stale 67-agent catalog blocks in README.md and docs/ja-JP/README.md
  and list ruby-reviewer there.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 18:35:14 +00:00
Leslie-23andClaude Opus 5.5 a7c6b4b3b8 feat(agents): add ruby-reviewer
Add a Ruby and Rails code reviewer agent covering Active Record query
safety, strong parameters, unsafe reflection and deserialization, XSS,
safe migrations, and RSpec/Minitest quality. It builds on the existing
rules/ruby/* and rails-patterns skill.

- Register it in .opencode/opencode.json with a matching prompt file
- Map ruby and rails to it in the orch-review workflow
- Bump the documented agent count from 68 to 69 across README, AGENTS.md,
  plugin manifests, and translated docs

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 08:15:35 +00:00
Md. Kishor MorolandKishor Morol 6f967dcee4 fix(bengali): version-safe collation check, accurate \w guidance
The pg_collation check referenced colllocale unconditionally. That column
only exists on PostgreSQL 17+; 15-16 call it colliculocale and <= 14 keep
the ICU locale in collcollate, so the query failed with "column does not
exist" on anything older than 17. Read the columns through to_jsonb(c),
which tolerates missing keys. Verified against postgres:14, :16 and :17 —
all return icu_provider = t, locale = bn-BD.

The reviewer's regex rule flagged `\w` unconditionally. In Python str
patterns `\w` does match Bengali letters, but not vowel signs or hasanta
(category M), so `re.findall(r'\w+', 'রহিম')` gives ['রহ', 'ম']. Say
that precisely, note where `\w` is ASCII-only (JavaScript, re.ASCII), and
point at [ঀ-৿] or \p{Bengali} instead.

Co-Authored-By: Kishor Morol <kishormorol@gmail.com>
2026-09-17 08:28:24 -04:00
Md. Kishor MorolandKishor Morol f70e5c1c47 chore: merge main and address outstanding review feedback
Resolve the 19 conflicts from 314 upstream commits (all language-selector
and catalog-count lines), then fix the review threads still open on #2655.

Merge resolution:
- Keep both new locales: every language selector now lists Українська and বাংলা,
  including the selectors that previously carried only one of them.
- Resync catalog counts to 69 agents / 293 skills across README.md, AGENTS.md,
  README.zh-CN.md, docs/zh-CN/*, docs/tr/AGENTS.md, and the plugin manifests.

Review fixes:
- install-components.json: drop the explicit skill:bengali-nlp -> framework-language
  mapping so the selector resolves to the generated single-skill component.
  Selecting it installed 70 skill paths plus core modules; it now installs
  skills/bengali-nlp only. (Greptile P1)
- docs/bn/README.md: point the Stars/Forks/Contributors badges at affaan-m/ECC
  instead of affaan-m/everything-claude-code, align the header with the other
  translations, add the 2.2.1 release section, and update 67+/281+ to 69/293.
- skills/bengali-nlp/SKILL.md: split the U+09F0-U+09FA row by character type;
  reject empty search queries; replace the delimiter-only prompt boundary with
  structured messages; require provider and locale checks before relying on the
  bn-BD ICU collation; rewrite the isdigit() anti-pattern, which claimed the
  method misses Bengali digits when it accepts them; add Best Practices and
  Related Skills per the CONTRIBUTING template.
- agents/bengali-reviewer.md: HIGH findings now need a fix or a written waiver
  with an owner and expiry, otherwise the verdict is BLOCK.
- tests/ci/bengali-language-surface.test.js: parse fences so an unclosed
  ```python block fails, track a missing interpreter as skipped rather than
  passed, assert the single-skill install plan, and check every language
  selector instead of only the root README.

Co-Authored-By: Kishor Morol <kishormorol@gmail.com>
2026-09-17 01:11:01 -04:00
Max BeitanandClaude Sonnet 5 9f1e52b1f6 feat(skills): add conventional-commit-review skill and commit-reviewer agent
Adds a skill + matching delegated agent that draft Conventional
Commits-style messages by reading the repo's own git log norms
(prefix, scope, subject length) instead of assuming a fixed format.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-05 22:23:31 +00:00
haelyra 6d04e74e80 Merge pull request #2633 from Juanpacol/fix/harness-optimizer-eval-harness-reference
fix(agents): point harness-optimizer at eval-harness instead of missing skill
2026-08-28 23:37:13 -04:00
haelyra 6544b2f7f8 fix(agents): require repeated harness eval trials 2026-08-28 21:26:42 -04:00
haelyra 2aebdd3408 Merge pull request #2870 from actus7/consolidate/hooks-observer-v3
fix(hooks): consolidate hooks and observer fixes (5 PRs)
2026-08-28 18:29:03 -04:00
dMiller 1ac9fd69f6 fix(agents): correct doc-updater description claiming command-invoking tools
The doc-updater description said it 'Runs /update-codemaps and /update-docs',
but its tools are Read, Write, Edit, Bash, Grep, Glob — no command-invoking
tool exists in this repo, and no agent is granted one. The agent body already
does the right thing (invokes generators directly); only the description was
wrong.

Agent descriptions drive selection, so a false capability claim can misroute
work to this agent on the assumption it can run slash commands.

docs/COMMAND-AGENT-MAP.md already records the true direction
(/update-codemaps -> doc-updater), so the description now matches: the agent
backs those commands rather than invoking them.

Applied to the canonical agent file and the two active .kiro mirrors that
carried the identical string.
2026-08-24 22:27:36 -03:00
Suliman Abdulrazzaq ef68f816d1 fix(gan): grant evaluator Playwright tools 2026-08-24 22:26:25 -03:00
haelyra 2cc58dfa45 feat: integrate Bengali language support 2026-08-11 23:58:29 -04:00
Shiva Kumarandhaelyra 0e0df5a6e7 feat(agents): add rag-pipeline-reviewer agent (#2446)
* feat(agents): add rag-pipeline-reviewer agent

* fix: correct model field syntax

* fix: address review feedback - add prompt defense baseline, fix context_recall gap, register in AGENTS.md

* chore: update agent count to 68, add trailing newline

* chore: fix agent count consistency in project structure section

* fix: sync Turkish agent catalog count

---------

Co-authored-by: haelyra <49814733+haelyra@users.noreply.github.com>
2026-08-10 22:08:48 -04:00
Juan PabloandClaude Sonnet 5 cc9b20404d fix(agents): require human approval and rollback for harness-optimizer changes
Addresses CodeRabbit review findings on PR #2633: security-sensitive
diffs must stay BLOCKED until a human explicitly approves (no more
SHIP IT on flagged-but-unreviewed changes), and Step 2/3 now snapshot
the pre-change state and auto-restore it if the audit or test suite
fails, so a failed run never leaves the harness partially modified.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-03 00:02:59 -05:00
Md Kishor MorolandClaude Opus 4.6 45a9780118 fix: address review feedback on Bengali language support
- Add missing Español link to Bengali README language selectors
- Fix Unicode character table: correct vowel range to U+0985–U+0994,
  consonant range to U+0995–U+09B0, include missing vowels ঌ ও ঔ
- Preserve ZWNJ/ZWJ in zero-width character stripping (important for
  Bengali conjuncts) — only remove ZWSP, BOM, and formatting chars
- Replace locale.setlocale with PyICU-first sorting approach
- Fix JavaScript sort to not mutate original array
- Use re.fullmatch for digit validation instead of re.match
- Add input sanitization guidance for Bengali prompt engineering
- Add PostgreSQL ICU collation verification step
- Make review summary template dynamic, not hardcoded
- Remove Bash from bengali-reviewer tools list for security
- Make database encoding advice database-specific (utf8mb4 for MySQL)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-08-02 23:28:54 -04:00
Md Kishor MorolandClaude Opus 4.6 bc88a6a470 feat: add Bengali (বাংলা) language support — translation, NLP skill, and reviewer agent
- Add Bengali README translation (docs/bn/README.md) covering guides, quick start, components, agent table, FAQ, and token optimization
- Add bengali-nlp skill (skills/bengali-nlp/SKILL.md) for Bengali text processing: Unicode normalization, conjunct handling, tokenization, script detection, Banglish handling, and dataset preparation
- Add bengali-reviewer agent (agents/bengali-reviewer.md) for reviewing code that handles Bengali text: grapheme cluster safety, NFC normalization, encoding validation, and i18n best practices
- Update language selectors across all existing README translations to include বাংলা

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-08-02 16:01:37 -04:00
Juan Pablo a0164707f0 fix(agents): point harness-optimizer at eval-harness instead of missing skill
agents/harness-optimizer.md told Claude to run /harness-audit as if it
were a skill under skills/, but /harness-audit is a command backed by
scripts/harness-audit.js, and subagents cannot invoke slash commands
during their own run. Rework the agent's workflow and output contract
to follow skills/eval-harness/SKILL.md's own methodology (EVAL
DEFINITION/EVAL REPORT, Grader Types, pass@k/pass^k) instead of an
ad-hoc scorecard, and restructure the body to match the agent template
in CONTRIBUTING.md (Your Role, Workflow steps, Output Format,
Examples).
2026-07-30 08:38:55 -05:00
GitHub CopilotandCopilot App 4acd6aa687 docs: agent architecture audit fixes
- Add Prompt Defense Baseline to agent-evaluator (was the only agent missing it)
- Update AGENTS.md to document all 67 agents (36 were previously unlisted)
- Add routing guidance for 11 additional agents in orchestration section
- Count in header kept at 67 (matches actual agents/ folder count)

Audit findings (documented but not changed):
- 3 agents (doc-updater, opensource-forker, opensource-packager) use model:haiku
  with Write/Edit tools; intentional for lightweight pipeline tasks
- 6 agents have non-standard color: field (loop-operator, harness-optimizer,
  gan-*, performance-optimizer); may be harness-specific UI metadata
- 7 agents are <=60 lines; thin but sufficient for narrow scope

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-07-28 23:25:43 +02:00
Affaan Mustafa 6a9f075cd9 fix: use scalar Claude agent tools (#2583)
Normalize scalar Claude agent tool metadata across validators, adapters, dashboards, and generated surfaces with regression coverage.
2026-07-26 03:20:15 -07:00
Affaan MustafaandDevin AI f6e18e0835 fix(agents): read-only reviewer contract + model re-tiering (#2442) + soften data-scraper prose (#2428) (#2480)
* fix(agents): retier reviewer frontmatter (#2442)

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* docs(skills): soften data scraper prose (#2428)

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-07-09 03:02:40 -04:00
Affaan Mustafa 1a08a21ac0 Merge pull request #2241 from itkdm/feat/add-vue-ecosystem
feat: add Vue ecosystem review support (vue-reviewer agent, /vue-review command, vue-patterns skill). Duplicate rules/vue/* kept from #2250; catalog counts reconciled.
2026-06-15 14:07:31 -04:00
Affaan Mustafa 1705cb72f0 Merge pull request #2220 from lamenting-hawthorn/feat/agent-self-evaluation
feat(skills,agents): add agent-self-evaluation skill and agent-evaluator persona. Catalog counts reconciled.
2026-06-15 14:06:09 -04:00
eb5ad2b009 feat(agents): add spec-miner agent for brownfield spec extraction (#2253)
* feat(agents): add spec-miner agent for brownfield spec extraction

Mines behavioral specs (Requirements + Invariants) from existing codebases
without OpenSpec. Fully self-bootstrapping with sample-and-expand token
strategy. Produces flat, delta-ready spec.md files with machine-parseable
metadata (id, entities, enforced, depends_on, triggers).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* docs: bump agent catalog count from 64 to 65 for spec-miner

All documentation and plugin manifests now reflect the new agent total.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix: add spec-miner to routing table and clarify id field requirement

- Add spec-miner to AGENTS.md agent table and orchestration hints
- Fix id field in output template: was marked [optional] but Rule #7
  requires it when enforced is known

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix: update catalog skills count from 261 to 262 across all docs

The upstream added a 262nd skill but documentation references across 7 files
still reported 261. The CI validate step (scripts/ci/catalog.js --text) caught
the mismatch — this only runs on PRs, not on direct pushes to main.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix: replace emoji characters with text equivalents in spec-miner agent

The unicode safety check (check-unicode-safety.js) blocks emoji characters.
Replace ❌ with FAIL: per the project's targeted replacement convention.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix: add Write tool to spec-miner agent tools list

The agent generates spec output files at openspec/specs/<capability>/spec.md
and requires the Write tool to create them.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix: address review bot comments - tool guardrails and metadata schema consistency

- Add Tool guardrails section: scoping Write to openspec/specs/ path, Bash to read-only
- Fix deferred/uncertainty comments to follow key: value schema (deferred: file list, uncertainty: reason)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix: strengthen Prompt Defense Baseline for repository content and Bash boundaries

Add two defense points: treat all repo content as untrusted prompt-injection
vector, and explicitly reject Bash commands that mutate, exfiltrate, or write
outside the allowed openspec/specs/ path.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix: strip explanatory prose from id metadata comment to preserve key:value format

The id comments included explanatory text after the value, which would be
stored verbatim in copied specs and break stable delta matching. The
explanation is already covered by Format Rule #7.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix: restore README.md to upstream baseline with only catalog count changes

The README was corrupted during cherry-pick conflict resolution — an older fork
version was introduced, changing release notes links, badge URLs, sponsor
sections, and other content. Restore to upstream/main (5b173d2) and re-apply
only the agent count (64→65) using catalog.js --write.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix: restore all catalog files to upstream baseline, keep only intentional changes

The cherry-pick during rebase introduced a stale fork version of multiple files
via git checkout --theirs conflict resolution. Restore from upstream/main and
re-apply only:

- Agent counts: 64→65 (all 7 catalog-tracked files)
- Skills counts: 261→262 (where needed)
- AGENTS.md: spec-miner routing table + orchestration hint (our additions)

This reverts unintended regressions:
- Version downgrades (2.0.0 → 2.0.0-rc.1) in marketplace.json, plugin.json,
  AGENTS.md, docs/zh-CN/AGENTS.md, docs/zh-CN/README.md
- Badge URL changes (api.ecc.tools dynamic → hardcoded) in Chinese READMEs
- Deleted v2.0.0 stable release sections in Chinese READMEs
- Wrong release notes path (2.0.0-rc.1 → 2.0.0) in README.md

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: lege962 <1515808962@qq.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-15 14:02:02 -04:00
Bujidao 86e2a2061a feat: add Vue ecosystem review support 2026-06-12 19:14:31 +08:00
Bujidao 6bde9be36c feat(agents): add vue-reviewer agent for Vue.js code review
Add vue-reviewer agent specializing in:
- Composition API correctness and reactivity pitfalls (ref/reactive/computed/watch)
- Vue 3.5+ reactive props destructure (stabilized, with watch limitation notes)
- Composable patterns, template security, accessibility
- Pinia state management, Vue Router navigation, Nuxt SSR safety
- Vue-specific performance (shallowRef, v-memo, KeepAlive)

Scope clearly delineated from typescript-reviewer for cross-invocation on .vue PRs.
2026-06-12 17:53:07 +08:00
Hawthorn 149be89d39 fix: address final lint blockers for agent self-evaluation
- Replace U+274C cross-mark examples with ASCII FAIL: prefixes
- Ensure agent-evaluator markdown ends with trailing newline
- Replace markdown placeholder underscores with bracketed placeholders to satisfy markdownlint MD037
2026-06-11 17:58:57 +05:30
Hawthorn 1e679bcb47 fix(agents): harden git commands against pager-based code execution
Git commands (log, diff, show) can execute arbitrary code via:
- core.pager set in repo-local .git/config
- diff.external pointing to an attacker-controlled binary
- filter drivers in .gitattributes

Mitigation: require --no-pager flag, recommend -c core.pager=cat
to disable pager-driven execution. Moved git commands from the
unqualified allowlist to a hardened allowlist with explicit flags.
2026-06-10 18:30:22 +05:30
Hawthorn 08f66b4909 fix(agents): add Bash tool guardrails to agent-evaluator
List allowed read-only commands (grep, cat, ls, find, head, tail, wc, stat,
git log/diff/show) and explicitly forbid destructive commands (rm, mv, chmod,
git push, git commit, sudo, pip/npm install, curl|wget piping to sh). Any
write/delete/remote-push requires explicit user confirmation.
2026-06-10 18:18:58 +05:30
Hawthorn 7c0a0049a8 fix: address second-round review comments
- Replace httpx.Retry references with correct httpx API usage across all files
  (httpx has no built-in Retry class; use HTTPTransport/Limits instead)
- Fix _check_summary to check first 100 words (not 100 characters)
- Fix template to only show → improvement arrow for non-5 scores
- Clarify hook documentation: hook echoes reminder, does not run evaluator
- Add return type annotation to main()
- Make required parameter keyword-only in _read_file_or_text
2026-06-10 17:59:25 +05:30
Hawthorn 2ea4d779a3 fix: address self-evaluation review comments
- Clarify that agent-evaluator reads skills/agent-self-evaluation/SKILL.md directly
- Standardize on Conciseness terminology, including helper names
- Remove invalid Stop hook matcher and avoid unsupported command-expression matcher examples
- Add explicit hook-integration reference path in SKILL.md
- Add summary and self-check fields to evaluate.py output, template, and agent spec
- Refactor evaluate.py clarity and input parsing helpers
- Remove unused task parameter from check_completeness

Validation:
- python3 -m py_compile skills/agent-self-evaluation/scripts/evaluate.py
- evaluate.py high/low example smoke tests
- node scripts/ci/validate-agents.js
- node scripts/ci/validate-skills.js
- node scripts/ci/validate-hooks.js
- node scripts/ci/validate-no-personal-paths.js
2026-06-10 17:25:24 +05:30
Hawthorn c0f651cf85 fix: align report format across evaluate.py, agent spec, and template
- evaluate.py: add CRITICAL ISSUES (axes ≤ 2) section, VERDICT line
- agent-evaluator.md: match format_report output exactly (title, evidence markers, bar graphs)
- templates/evaluation-report.md: match evaluate.py output format
- All now produce identical AGENT SELF-EVALUATION REPORT structure

Single authoritative format: evaluate.py's format_report() output.
2026-06-10 17:11:44 +05:30
Hawthornandcoderabbitai[bot] d0a84db177 Update agents/agent-evaluator.md
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-06-10 17:08:31 +05:30
Hawthorn bd45947941 feat(skills,agents): add agent-self-evaluation skill and agent-evaluator persona
Add structured 5-axis self-evaluation framework for agent output quality:
- Accuracy, Completeness, Clarity, Actionability, Conciseness
- Evidence-based scoring with concrete improvement suggestions
- Standalone Python evaluator script with keyword heuristics
- Detailed scoring anchors reference guide
- High-score and low-score annotated examples
- Reusable evaluation report template
- Optional hook integration for session-stop evaluation

Agent persona (agent-evaluator) provides a dedicated subagent
for applying the rubric to agent output with tool-backed verification.

All files tested: Python script runs, examples score correctly
(high 4.2, low 3.4), frontmatter parses clean, 183 lines (under 500).
2026-06-10 16:56:18 +05:30
Affaan MustafaandECC Test e755c5f72b fix: make plugin hooks run on Node 21+ and green the suite under modern Node (#2184)
ROOT CAUSE: hooks load plugin-hook-bootstrap.js via
`node -e "...; process.argv.splice(1,0,s); require(s)"`. On Node 21+,
require.main is `undefined` under --eval, so the `if (require.main === module)`
guard was false and main() never ran — every plugin hook silently no-op'd
(e.g. the MCP-health PreToolUse hook stopped blocking). CI (Node 18/20) hid
this; it only surfaces on Node 21+. Fix: also run main() when require.main is
undefined (the eval-bootstrap case), while staying dormant on real imports.

Also clears pre-existing main debt the full local suite enforces:
- catalog:sync — README/docs agent+skill counts drifted after recent merges
- tests/ci/supply-chain-watch-workflow: update checkout SHA to the merged v6.0.3 (#2183)
- markdownlint + check-unicode-safety --write across docs/skills

Suite: 2683/2683 green under Node v25; lint + unicode clean.

Co-authored-by: ECC Test <ecc@example.test>
2026-06-07 16:05:28 +08:00
elmochilyas 06c376ae8b feat(skills): add laravel-security, laravel-tdd, and php-reviewer agent (#2122)
* feat(skills): add laravel-security, laravel-tdd, and php-reviewer agent

* fix: resolve code review findings across laravel-security, laravel-tdd, and php-reviewer

- laravel-security: replace env() with config() in runtime code,
  replace wildcard trusted proxies with CIDR ranges, remove blanket
  api/* CSRF exclusion, fix validated() return type, add null-safe
  rate limiter user access, sync mimes/extensions allowlists,
  replace #[Encrypted] with ShouldBeEncrypted, fix RateLimited args
- laravel-tdd: remove global withoutExceptionHandling() from setUp,
  remove contradictory assertNothingOutgoing(), fix undefined
  variable, replace invalid PHPUnit --min-coverage flag
- php-reviewer: fix Python contamination, add automated check
  requirement to approval criteria

* fix: align php-reviewer approval criteria and use config dot-notation keys

- agents/php-reviewer.md: sync approval criteria with .txt file version
  (add automated checks requirement for consistency across harnesses)
- skills/laravel-security/SKILL.md: replace raw env names with proper
  Laravel dot-notation config keys (app.key, services.stripe.*, etc.)
  so config() returns valid values instead of null

* fix: remove unnecessary secret validation for SMTP password
2026-06-07 13:29:12 +08:00