377 Commits

Author SHA1 Message Date
Affaan Mustafa
c64cc69eb2
Merge pull request #1363 from gnpthbalaji/feat/accessibility
feat(agent + skill): a11y-architect agent and accessibility skill
2026-04-13 00:59:57 -07:00
seto
dd2962ee92 fix: 5 bugs + 2 tests from 3-agent deep bughunt
Bugs fixed:
- B1: JS gate messages still said "cat one real record" -> redacted/synthetic
- B2: Destructive bash key used 200-char truncation (collision bypass) -> SHA256 hash
- B3: sanitizePath only stripped \n\r -> now strips null bytes, bidi overrides, all control chars
- B4: Tool name matching was case-sensitive (latent bypass) -> lookup map normalization
- B5: SKILL.md Gate Types missing MultiEdit -> added with explanation

Tests added:
- T1: MultiEdit gate denies first unchecked file (CRITICAL - was untested)
- T2: MultiEdit allows after all files gated

11/11 tests pass.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 16:32:46 +09:00
seto
8cd6378c81 fix: cubic-dev-ai round 3 — SKILL.md consistency
P2: Description now says "Edit/Write/Bash (including MultiEdit)"
    instead of listing MultiEdit as a separate top-level gate

P2: Write Gate and Anti-Patterns now use same "redacted or synthetic
    values" wording as Edit Gate (was still "cat one real record")

All 3 gate doc sections now consistent. 9/9 tests pass.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 16:19:01 +09:00
seto
4dbed5ff5b fix: cubic-dev-ai round 2 — 3 issues across SKILL.md + pruning
P1: Gate message asked for raw production data records — changed to
    "redacted or synthetic values" to prevent sensitive data exfiltration

P2: SKILL.md description now includes MultiEdit (was missing after
    MultiEdit gate was added in previous commit)

P2: Session key pruning now caps __prefixed keys at 50 to prevent
    unbounded growth even in theoretical edge cases

9/9 tests pass.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 16:11:33 +09:00
Affaan Mustafa
0fcb43ea90 fix(grader): handle forward after_step references 2026-04-12 23:36:16 -07:00
Balaji Guntur
51abaf0fc0
fix: correct accessibility terminology and code fence in a11y skill and agent
- Fix inverted focus trap terms: Keyboard Traps -> Uncontained Modal Focus with WCAG SC 2.1.2 reference
- Fix Step 1 blocker example: missing keyboard traps -> missing focus containment in modals
- Attach [language] placeholder to opening triple-backtick fence in agent implementation template
2026-04-11 20:30:47 -07:00
seto
5a03922934 feat(hooks,skills): add gateguard fact-forcing pre-action gate
A PreToolUse hook that forces Claude to investigate before editing.
Instead of self-evaluation ("are you sure?"), it demands concrete facts:
importers, public API, data schemas, user instruction.

A/B tested: +2.25 quality points (9.0 vs 6.75) across two independent tasks.

- scripts/hooks/gateguard-fact-force.js — standalone Node.js hook
- skills/gateguard/SKILL.md — skill documentation
- hooks/hooks.json — PreToolUse entries for Edit|Write and Bash

Full package with config: pip install gateguard-ai
Repo: https://github.com/zunoworks/gateguard

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 11:41:33 +09:00
Balaji Guntur
33673fb37a
Fix PR comments - renamed 'when to activate' to 'when to use', fixed the iOS reference link to current, added iOS HIG link 2026-04-11 13:33:17 -07:00
Balaji Guntur
643d03575a
Update the accessibility skill to include related skills 2026-04-11 12:58:21 -07:00
Balaji Guntur
aa8948d5cf
Adding accessibility skill to go in with the inclusive-ui-agent 2026-04-11 12:51:21 -07:00
AlexisLeDain
46db568c38 fix: use doNothing for void Panache persist() in verification test example
Panache persist() returns void, so when().thenReturn() won't compile.
Replaced with doNothing().when().persist() which is the correct
Mockito pattern for void methods.
2026-04-09 18:39:21 +02:00
Alexis Le Dain
aca8dda78c
Update skills/quarkus-patterns/SKILL.md
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-04-09 18:35:23 +02:00
Alexis Le Dain
53e2e798f7
Update skills/quarkus-tdd/SKILL.md
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-04-09 18:35:08 +02:00
Alexis Le Dain
e3d4e33ddb
Update skills/quarkus-patterns/SKILL.md
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-04-09 18:30:31 +02:00
Alexis Le Dain
80daa6dc78
Update skills/quarkus-verification/SKILL.md
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-04-09 18:20:11 +02:00
Alexis Le Dain
6ed9b49a5b
Update skills/quarkus-patterns/SKILL.md
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-04-09 18:16:23 +02:00
AlexisLeDain
56bbbb3dbe fix: handle checked JsonProcessingException in serializePayload
writeValueAsString throws checked JsonProcessingException which was
unhandled, causing a compile error. Wrapped in try/catch, rethrowing
as IllegalStateException.
2026-04-09 17:28:56 +02:00
AlexisLeDain
e928ceacee fix: assert Camel route body as String after JSON marshalling
The route calls .marshal().json() before reaching the mock endpoint,
so the body is a JSON String, not a POJO. Removed expectedBodiesReceived
with POJO and getBody(BusinessRulesPayload.class), replaced with
String body assertion using contains().
2026-04-09 16:42:26 +02:00
AlexisLeDain
c399627377 fix: add input guards to EventService to match TDD test expectations
Tests assert null-payload and blank-error-message guards but the
implementation had none. Added Objects.requireNonNull for payload
and blank check for errorMessage. Also added missing objectMapper
field to locale copies.
2026-04-09 16:12:44 +02:00
AlexisLeDain
eddfeb6fbf fix(security): reject requests with missing/malformed auth header
The custom auth filter only rejected invalid tokens but silently
passed through requests without an Authorization header, creating
a complete auth bypass. Inverted the guard to reject-first: abort
immediately when header is absent or malformed, then validate.
2026-04-09 16:09:10 +02:00
AlexisLeDain
8f65048bc3 fix(security): replace spoofable X-Forwarded-For with getRemoteAddr in rate limiter
X-Forwarded-For is client-controlled and trivially bypassable for rate
limiting. Replaced with HttpServletRequest.getRemoteAddr() which uses
the container-provided remote address. Added note about configuring
quarkus.http.proxy.proxy-address-forwarding for trusted proxy setups.
2026-04-09 16:07:46 +02:00
AlexisLeDain
893eca0369 fix: use Quarkus Platform Camel BOM instead of Apache Camel BOM
org.apache.camel.quarkus:camel-quarkus-bom follows its own release
cadence and doesn't align with quarkus.platform.version. Replaced
with io.quarkus.platform:quarkus-camel-bom which is published at
the same version as quarkus-bom.
2026-04-09 16:05:28 +02:00
AlexisLeDain
9b4704fe3d fix: resolve compile errors in quarkus code examples
- Add missing @Slf4j and bucketName field to FileStorageService
- Fix PaginatedList → List type mismatch (Panache returns List)
- Fix executorService.submit → execute mock (supplyAsync uses execute)
- Update S3 failure test to throw from putObject instead of failed future

Applied to English + all 3 locale copies (tr, ja-JP, zh-CN).
2026-04-09 16:04:06 +02:00
Alexis Le Dain
ca7ff001ce
Update skills/quarkus-patterns/SKILL.md
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-04-09 15:32:51 +02:00
Affaan Mustafa
1b3ccb85aa docs: mark continuous-learning v1 as legacy 2026-04-08 16:31:58 -07:00
Affaan Mustafa
9bd8e8b3c7 fix: resolve markdownlint violations 2026-04-08 15:40:26 -07:00
AlexisLeDain
bc94f9926e fix: add Quarkus detection signal to Phase 0 in prompt-optimizer
Phase 0 mapped build.gradle/pom.xml only to Spring Boot. Now it
instructs checking the build file contents for 'quarkus' vs
'spring-boot' to select the correct tech stack path.
2026-04-08 22:43:31 +02:00
AlexisLeDain
eb2ea25b8e fix: clarify AssertJ vs JUnit assertion guidance in quarkus-tdd
Changed "Always use AssertJ" to "Prefer AssertJ for value checks" and
documented the intended pattern: JUnit assertThrows/assertDoesNotThrow
for exception lifecycle, AssertJ for value validation. This matches
the actual code examples in the document.
2026-04-08 22:31:04 +02:00
AlexisLeDain
61dfbf8846 fix: remove unsafe-inline from script-src in CSP example
'unsafe-inline' for script-src negates XSS protection from CSP.
Removed it from the security headers example in quarkus-security
and all locale copies. Kept 'unsafe-inline' for style-src only
(commonly needed by CSS frameworks) with a comment recommending
nonces where possible.
2026-04-08 22:28:46 +02:00
AlexisLeDain
9b9f71c2e5 fix: address PR review findings for quarkus skills
- Add missing objectMapper field to EventService example (quarkus-patterns)
- Fix eventService.validate() → documentValidator.validate() API mismatch (quarkus-tdd)
- Add DocumentValidator mock declaration in Camel route test (quarkus-tdd)
- Update .opencode java-reviewer.txt to mention Quarkus alongside Spring Boot
2026-04-08 22:08:38 +02:00
AlexisLeDain
63934f382a fix prompt-optimizer skill mapping for Java reviewers 2026-04-08 21:54:16 +02:00
AlexisLeDain
73de75abfd fix undefined originalFileName 2026-04-08 21:18:42 +02:00
Alexis Le Dain
ddd611152e
Update skills/configure-ecc/SKILL.md
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-04-08 21:03:46 +02:00
AlexisLeDain
c44d37e931 add quarkus to java part 2026-04-08 16:24:27 +02:00
Affaan Mustafa
572c7a8fe6 docs: add capability surface selection guide 2026-04-06 14:21:28 -07:00
Affaan Mustafa
df96abe74c fix: harden windows observer prompt handling 2026-04-06 14:05:38 -07:00
Affaan Mustafa
e09c548edf feat: add agent introspection debugging skill 2026-04-05 20:10:54 -07:00
Affaan Mustafa
c547823c53 docs: narrow coding standards scope 2026-04-05 20:05:50 -07:00
Affaan Mustafa
ff303d71b6 feat: salvage frontend-design from hermes branch 2026-04-05 17:48:46 -07:00
Affaan Mustafa
a1e37d7c0d feat: add agent-sort selective install workflow 2026-04-05 17:36:37 -07:00
Affaan Mustafa
4b24d5777d docs: clean stale template references 2026-04-05 17:05:53 -07:00
Affaan Mustafa
92fbc52906 docs: separate product lens from capability planning 2026-04-05 16:59:54 -07:00
Affaan Mustafa
05d836387e feat: add product capability planning lane 2026-04-05 16:58:02 -07:00
Affaan Mustafa
9d7531706d feat: add connector and dashboard builder skills 2026-04-05 16:47:33 -07:00
Affaan Mustafa
ece14da5cd feat: add ECC-native operator workflow skills 2026-04-05 16:31:26 -07:00
Affaan Mustafa
eb39a0ea57 feat: add security bounty hunting skill 2026-04-05 16:13:53 -07:00
Affaan Mustafa
50ebf1605a feat: add blockchain security skill bundle 2026-04-05 16:12:42 -07:00
Affaan Mustafa
8fe97d1675 feat: add HIPAA entrypoint skill 2026-04-05 16:10:05 -07:00
Affaan Mustafa
31afed5b5d feat: add SEO audit support 2026-04-05 15:46:01 -07:00
Affaan Mustafa
da813d48a0 feat: add code tour workflow 2026-04-05 15:42:58 -07:00