Commit Graph

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